最近在使用Cocos Creator 1.7版本开发一款棋牌游戏,在浏览器中运行正常,但在模拟器里或打包成Apk后,socket.io总是连接失败,具体提示
内容如下:
IOS没有试,估计也是一样。百度了很久,看到有人说可能是Cocos编译后的原生平台的socket.io与官方的socket.io有比较大的出入,
需要手动修改,感觉太麻烦。通过在VS Code调试客户端发现,客户端Net.js中在调用emit函数时,有一个undefined的参数没有处理导致,修改
后解决问题。
send:function(event,data){ if(this.sio.connected){ if(data != null && (typeof(data) == "object")){ data = JSON.stringify(data); //console.log(data); } if (typeof(data) == "undefined") { data = ""; } this.sio.emit(event,data); } },
其中
if (typeof(data) == "undefined") { data = ""; }
为后来添加的部分。