app.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. var login = require('./scripts/login');
  2. var match = require('./scripts/match');
  3. var room = require('./scripts/room');
  4. var close = require('./scripts/close');
  5. var lib = require('./scripts/lib');
  6. //所有用户,必须用全局global安装,这样保证每一个线程都能访问到相同的全局数组
  7. global.players_map = [];
  8. global.wait_rooms_map = [];
  9. global.inGame_rooms_map = [];
  10. let ws = require("nodejs-websocket");
  11. // 创建服务器
  12. // let server = ws.createServer(function (connect)
  13. ws.createServer(function (connect)
  14. {
  15. // 监听客户端回调信息
  16. connect.on("text", function (data) {
  17. // console.log('data=',data)
  18. let data_json = JSON.parse(data);
  19. //用户登录
  20. if (data_json.type === 'login') {
  21. console.log(data_json.openid + '进入大厅');
  22. login.on(connect,data_json.openid,data_json.name,data_json.avatarUrl,data_json.gender);
  23. }
  24. else if (data_json.type === 'match') {
  25. console.log(data_json.openid + '正在匹配..');
  26. if(data_json.gameMode === 'lockStep')
  27. {
  28. match.lockStep(data_json.openid,data_json.gameMode);
  29. }
  30. }
  31. else if (data_json.type === 'lockStep') {
  32. console.log(data_json.openid + '发送消息:'+data_json.order);
  33. console.log('roomId:'+data_json.roomId);
  34. let room = global.inGame_rooms_map[data_json.roomId];
  35. room.pushOrder(data_json.openid,data_json.order);
  36. }
  37. });
  38. connect.on("close", function (code, reason) {
  39. // for(let key in global.players_map){
  40. // if(global.players_map[key].connect === connect)
  41. // {
  42. // console.log(key+'退出')
  43. // }
  44. // }
  45. // console.log('code='+code);
  46. close.on(connect,'退出');
  47. });
  48. connect.on("error", function (code, reason) {
  49. // for(let key in global.players_map){
  50. // if(global.players_map[key].connect === connect)
  51. // {
  52. // console.log(key+'异常退出')
  53. // }
  54. // }
  55. // console.log('code='+code);
  56. // close.on(connect,'异常退出');
  57. });
  58. }).listen(3000)
  59. console.log("WebSocket建立完毕")