lockStepClient.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. let lockStepClient = {
  2. matchCallback:null,
  3. onMessageRecCallback:null,
  4. login(openid,name,avatarUrl,gender,callback)
  5. {
  6. if(openid ==='' || name ==='' ||avatarUrl ==='' ||gender ==='' ||callback == null) return;
  7. let Self = this;
  8. this.ws = new WebSocket("ws://localhost:3000");
  9. // var ws = new WebSocket("ws://121.4.59.141:3000/node/");
  10. // var ws = new WebSocket("ws://www.yuyekeji.cn:3000/node/");
  11. console.log("WebSocket建立成功");
  12. this.ws.onopen = function () {
  13. //当WebSocket创建成功时,触发onopen事件
  14. console.log("open");
  15. let player_info = {};
  16. player_info.type = "login";
  17. player_info.openid = name;
  18. player_info.name = name;
  19. player_info.avatarUrl = avatarUrl;
  20. player_info.gender = gender;
  21. Self.ws.send(JSON.stringify(player_info)); //将消息发送到服务端
  22. callback();
  23. }
  24. this.ws.onmessage = function (e) {
  25. //当客户端收到服务端发来的消息时,触发onmessage事件,参数e.data包含server传递过来的数据
  26. // console.log(e.data);
  27. let data_json = JSON.parse(e.data);
  28. if(data_json.type === 'match')
  29. {
  30. Self.matchCallback(data_json.openid,data_json.name,data_json.avatarUrl,data_json.gender);
  31. }
  32. else if(data_json.type === 'message')
  33. {
  34. Self.onMessageRecCallback(data_json.message);
  35. }
  36. }
  37. this.ws.onclose = function (e) {
  38. //当客户端收到服务端发送的关闭连接请求时,触发onclose事件
  39. console.log("close");
  40. }
  41. this.ws.onerror = function (e) {
  42. //如果出现连接、处理、接收、发送数据失败的时候触发onerror事件
  43. console.log(error);
  44. }
  45. },
  46. match(openid,callback)
  47. {
  48. if(openid ==='' || callback == null) return;
  49. let obj = {};
  50. obj.type = 'match';
  51. obj.openid = openid;
  52. this.matchCallback = callback;
  53. this.ws.send(JSON.stringify(obj));
  54. },
  55. sendMessage(openid,message)
  56. {
  57. if(openid ==='' || message ==='') return;
  58. let obj = {};
  59. obj.type = 'message';
  60. obj.openid = openid;
  61. obj.message = message;
  62. this.ws.send(JSON.stringify(obj));
  63. }
  64. }
  65. // module.exports = lockStepClient;