LockStepClient.js 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. window.lockStepClient = {
  2. matchCallback:null,
  3. onRecvFromClientCallback:null,
  4. onPlayerQuitCallback:null,
  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. // console.log(e.data);
  31. let data_json = JSON.parse(e.data);
  32. if(data_json.type === 'match')
  33. {
  34. Self.matchCallback(data_json.openid,data_json.name,data_json.avatarUrl,data_json.gender);
  35. }
  36. else if(data_json.type === 'message')
  37. {
  38. Self.onRecvFromClientCallback(data_json.message);
  39. }
  40. }
  41. this.ws.onclose = function (e) {
  42. //当客户端收到服务端发送的关闭连接请求时,触发onclose事件
  43. console.log("close");
  44. }
  45. this.ws.onerror = function (e) {
  46. //如果出现连接、处理、接收、发送数据失败的时候触发onerror事件
  47. console.log(error);
  48. }
  49. },
  50. match(openid,callback)
  51. {
  52. if(openid ==='' || callback == null) return;
  53. let obj = {};
  54. obj.type = 'match';
  55. obj.openid = openid;
  56. this.matchCallback = callback;
  57. this.ws.send(JSON.stringify(obj));
  58. },
  59. sendMessage(openid,message)
  60. {
  61. if(openid ==='' || message ==='') return;
  62. let obj = {};
  63. obj.type = 'message';
  64. obj.openid = openid;
  65. obj.message = message;
  66. this.ws.send(JSON.stringify(obj));
  67. },
  68. onRecvFromClient(callback){
  69. this.onRecvFromClientCallback = callback;
  70. },
  71. cancel()
  72. {
  73. this.ws.close();
  74. },
  75. onOtherPlayerQuit(openid,callback)
  76. {
  77. if(openid ==='') return;
  78. let obj = {};
  79. obj.type = 'onQuit';
  80. obj.openid = openid;
  81. callback = this.onPlayerQuitCallback;
  82. }
  83. }
  84. module.exports = lockStepClient;