cocos2d-js中使用websocket

前端之家收集整理的这篇文章主要介绍了cocos2d-js中使用websocket前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面是一个简单的封装:
  1. //Network.js
  2. var WebSocket = WebSocket || window.WebSocket || window.MozWebSocket;
  3.  
  4.  
  5. var Network = (function(){
  6. var instance = null;
  7. function getNetworkInstance (){
  8. var networkInstance = {
  9. socket:null,isInit:false,initNetwork:function(){
  10. cc.log('Network initSocket...');
  11. this.host = "ws://192.168.33.192:8080";
  12. this.testhost = "ws://echo.websocket.org"
  13. this.socket = new WebSocket(this.host);
  14. this.socket.onopen = function(evt){
  15. cc.log('Network onopen...');
  16. utils.outObj(evt);
  17. this.isInit = true;
  18. };
  19. this.socket.onmessage = function(evt){
  20. var data = evt.data;
  21. cc.log('Network onmessage...');
  22. utils.outObj(evt);
  23. };
  24. this.socket.onerror = function(evt){
  25. cc.log('Network onerror...');
  26. utils.outObj(evt);
  27. };
  28. this.socket.onclose = function(evt){
  29. cc.log('Network onclose...');
  30. utils.outObj(evt);
  31. this.isInit = false;
  32. };
  33. },send:function(data){
  34. if (this.isInit){
  35. cc.log('Network is not inited...');
  36. }else if(this.socket.readyState == WebSocket.OPEN){
  37. cc.log('Network send:'+data);
  38. this.socket.send(data);
  39. }else{
  40. cc.log('Network WebSocket readState:'+this.socket.readyState);
  41. }
  42. },close:function(){
  43. if (this.socket){
  44. cc.log("Network close...");
  45. this.socket.close();
  46. this.socket = null;
  47. }
  48. }
  49. };
  50. return networkInstance;
  51. };
  52.  
  53.  
  54. return {
  55. getInstance:function(){
  56. if(instance === null){
  57. instance = getNetworkInstance();
  58. }
  59. return instance;
  60. }
  61. };
  62. })();

// 在main.js中加入
  1. Network.getInstance().initNetwork();

// 在app.js中加入加入一个按钮,在按钮的点击事件中加入:
  1. Network.getInstance().send("Hellow server");

猜你在找的Cocos2d-x相关文章