Failed to invoke SocketIO_emit , 以前的版本都是好的,升级到1.7 就报这个错了

环境是ios 11.2 真机,网络环境局域网和公网都测试了,应该不是网络问题,一直循环连接成功和断开。

Failed to invoke SocketIO_emit
jsb: ERROR: File /Volumes/phz/qipai/client_douniu/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/jsb_socketio.cpp: Line: 192, Function: SocketIO_emit
Converting payload failed!
[ERROR] Failed to invoke SocketIO_emit, location: /Volumes/phz/qipai/client_douniu/build/jsb-default/frameworks/cocos2d-x/cocos/scripting/js-bindings/manual/jsb_socketio.cpp:203
JS: close
JS: dispatchEvent: disconnect

你 io.emit(name, payload) 的payload是不是非字符串?

payload 如果是arraybuffer 怎么办

Creator native 模块的socketio 一直都不支持payload 是arraybuffer吧,你是哪个版本支持的?
可以base64为string后发送。服务端做decode base64的操作。

我用的是websocket…

看你这路径是棋牌游戏吧,Net.js中 这个函数少传了一个参数
ping:function(){
this.send(‘game_ping’);
},

js内核升级后,导致出错。
解决办法
改成 this.send(‘game_ping’,"")就可以了

或者在函数send:function(event,data){
if(this.sio.connected){
if(data != null && (typeof(data) == “object”)){
data = JSON.stringify(data);
//console.log(data);
}
this.sio.emit(event,data);
}
},

中最后一行改成 this.sio.emit(event,data+"");

web怎么做就怎么做,支持arraybuffer