cocoscreator2.0.5版本,native使用socketIO连接后自动断开

如图:每次连接后都这样自动断开掉了,刚接触creator,求救怎么解决啊

别沉啊,自己顶一个

官方的测试用例跑了下,没有复现该问题,你试试官方测试用例的用法。

我用浏览器不会出现这个情况。因为在native是使用creator集成的socketIO,在浏览器是在socket.io官网下载的最新版本的。nodejs也是最新版本的。不知道是不是集成的socketIO跟nodejs的socket.io版本不一致导致的。

官方用例是在native上做测试也是没问题的,你参考下,如果你的服务端与现有的socketIO代码协议不匹配,建议不要使用原生的socketIO。

谢谢回答。但是我现在把前后端的socket.io的版本都调到2.2.0了,还是一样的出现这个问题。在模拟器运行会先如题的错误,在浏览器就不会出现。我没有做多余的操作。你可以帮我看一下怎么解决吗?这是我客户端的代码:

你好,我感觉是native的问题。我连接官方示例里面的地址,效果也是一样,模拟器只会连上一次,虽然没有主动断开,但是心跳断了。但是使用浏览器就不会有这个问题,浏览器的心跳会一直跑。

给我个demo,还有服务端地址,我看看什么情况

NodeJsClient.rar (719.0 KB)

这个使用的就是官方demo里面的服务器地址。麻烦看一下,谢谢了。

Native版本的socketIO协议兼容性有问题,所以没有心跳,但是网络是正常的,这个我反馈一下。

@1151856936 native SIO的实现比较糙, 建议 从https://cdnjs.com/libraries/socket.io下载到本地, 再require

对的,在1.8.2版本只是没有心跳,但是在2.0.5版本会直接断开。这个也麻烦反馈一下。还有一个问题我没有弄懂,在native难道使用的是引擎自带的那个socketIO吗?不是我导入的socket.io那个插件吗?

抱歉,断开的问题找到了,与creato版本无关。是服务端socket.io版本的问题,我把服务端socket.io的版本改为1.4.4就没问题了。谢谢回答我的问题。

恩,就是下载下来导入为插件的。

已经反馈了,你导入的socket.io应该是从别的开发者复制过来的,本身不兼容native环境。

不是的,我是在socket.io官网下载的client的最新版本。

大佬,你好,我用的websocket,wss,浏览器和微信都可以连接成功,模拟器就会失败,不知道啥问题

那说明cocos的模拟器本身就有问题

官方范例有示例代码,需要传入证书,遇到第三个参数语法报错,可以直接忽略,不影响编译。
https://github.com/cocos-creator/example-cases/blob/39eb67d2ef2572a8d2f33ac9ccbfbaba714254dd/assets/cases/05_scripting/11_network/NetworkCtrl.js#L106