MiniGameServer.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. const lib = require("./Library");
  2. window.server = {
  3. matchCallback:null,
  4. eventNodeArr:[],
  5. login(openid,name,avatarUrl,gender,callback)
  6. {
  7. if(openid ==='' || name ==='' ||avatarUrl ==='' ||gender ==='' ||callback == null) return;
  8. let Self = this;
  9. // this.ws = new WebSocket("ws://localhost:3000");
  10. // this.ws = new WebSocket("ws://121.4.59.141:3000/node/");
  11. // this.ws = new WebSocket("ws://www.yuyekeji.cn:3000/node/");
  12. // this.ws = new WebSocket("ws://www.yuyekeji.cn:3000/");
  13. this.ws = new WebSocket("ws://192.168.31.211:3000");
  14. this.ws.onopen = function () {
  15. //当WebSocket创建成功时,触发onopen事件
  16. console.log("WebSocket建立成功");
  17. console.log("open");
  18. let player_info = {};
  19. player_info.type = "login";
  20. player_info.openid = openid;
  21. player_info.name = name;
  22. player_info.avatarUrl = avatarUrl;
  23. player_info.gender = gender;
  24. // console.log('player_info=',player_info)
  25. Self.ws.send(JSON.stringify(player_info)); //将消息发送到服务端
  26. callback();
  27. }
  28. this.ws.onmessage = function (e) {
  29. //当客户端收到服务端发来的消息时,触发onmessage事件,参数e.data包含server传递过来的数据
  30. let data_json = JSON.parse(e.data);
  31. if(data_json.type === 'match')
  32. {
  33. Self.matchCallback(data_json.roomId,data_json.openid,data_json.name,data_json.avatarUrl,data_json.gender);
  34. }
  35. else if(data_json.type === 'onRecvLockStep')
  36. {
  37. Self.emmitEvent('onRecvLockStep',data_json);
  38. }
  39. }
  40. this.ws.onclose = function (e) {
  41. //当客户端收到服务端发送的关闭连接请求时,触发onclose事件
  42. console.log("close");
  43. }
  44. this.ws.onerror = function (e) {
  45. //如果出现连接、处理、接收、发送数据失败的时候触发onerror事件
  46. console.log(error);
  47. }
  48. },
  49. on(eventName,callback){
  50. let aMap = {};
  51. aMap.eventName = eventName;
  52. aMap.callback = callback;
  53. this.eventNodeArr.push(aMap);
  54. },
  55. match(openid,gameMode,callback)
  56. {
  57. if(openid ==='' || callback == null) return;
  58. let obj = {};
  59. obj.type = 'match';
  60. obj.openid = openid;
  61. obj.gameMode = gameMode;
  62. this.matchCallback = callback;
  63. this.ws.send(JSON.stringify(obj));
  64. },
  65. cancel()
  66. {
  67. this.ws.close();
  68. },
  69. emmitEvent(eventName,data){
  70. for(let i=0;i<this.eventNodeArr.length;i++){
  71. let aMap = this.eventNodeArr[i];
  72. if(aMap.eventName === eventName)
  73. {
  74. aMap.callback(data);
  75. }
  76. }
  77. },
  78. sendOrder(openid,order,position,roomId)
  79. {
  80. let obj = {};
  81. obj.openid = openid;
  82. obj.type = 'lockStep';
  83. obj.order = order;
  84. obj.position = position;
  85. obj.roomId = roomId;
  86. this.ws.send(JSON.stringify(obj));
  87. },
  88. // sendMessage(openid,message)
  89. // {
  90. // if(openid ==='' || message ==='') return;
  91. // let obj = {};
  92. // obj.type = 'message';
  93. // obj.openid = openid;
  94. // obj.message = message;
  95. // this.ws.send(JSON.stringify(obj));
  96. // },
  97. // onOtherPlayerQuit(openid,callback)
  98. // {
  99. // if(openid ==='') return;
  100. // let obj = {};
  101. // obj.type = 'onQuit';
  102. // obj.openid = openid;
  103. // callback = this.onPlayerQuitCallback;
  104. // }
  105. }
  106. module.exports = server;