Cocos Creator 1.7.0 在ios上使用SocketIO抱错

XMLHttpRequest_finalize, 0x119195e00 ... 
jsb: ERROR: File /Users/nantas/fireball-x/cocos2d-x-lite-prebuilt/cocos/scripting/js-bindings/manual/jsb_socketio.cpp: Line: 192, Function: SocketIO_emit
Converting payload failed!
[ERROR] Failed to invoke SocketIO_emit, location: /Users/nantas/fireball-x/cocos2d-x-lite-prebuilt/cocos/scripting/js-bindings/manual/jsb_socketio.cpp:203
jsb: ERROR: File /Users/nantas/fireball-x/cocos2d-x-lite-prebuilt/cocos/scripting/js-bindings/manual/jsb_socketio.cpp: Line: 192, Function: SocketIO_emit
Converting payload failed!
[ERROR] Failed to invoke SocketIO_emit, location: /Users/nantas/fireball-x/cocos2d-x-lite-prebuilt/cocos/scripting/js-bindings/manual/jsb_socketio.cpp:203
JS: close
JS: RequestURL:http://127.0.0.1:9600/is_server_online?account=guest_1512778892725&sign=4c2efe09a2b668ec4d71e2015b39b0eb&ip=127.0.0.1&port=6300&client_id=6300
JS: http res(43):{"isonline":true,"errcode":0,"errmsg":"ok"}
JS: disconnect
ERROR: TypeError: null is not an object (evaluating 'self.sio.connected = false'), location: src/project.dev.js:6160:21
STACK:
src/project.dev.js:6160:21
disconnect ... 

用cocos creator 1.6.2在android上没有问题,我升级了一下1.7.0,然后就不能emit了
js的部分代码如下

if (!CC_JSB && !cc.sys.isNative) {
    window.io = require("socket-io");
}else {
    window.io = SocketIO;
}

        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);                
            }
        },

解决了,传了个undefined的data,转换成""就可以了,emit不能传undefined?

原来的方式太诡异了。
不过还是给出方案兼容原来的用法吧。。。
https://github.com/cocos-creator/cocos2d-x-lite/pull/1019