Socket.IO发出对象的Javascript

我不能发射客户端到服务器的对象..这是我的客户端上的代码

var foo = { name: xxx, type: mytype }; cc.log(foo); socket.emit('test', foo); 

错误

 JS: [object Object] JSB SocketIO.emit method called jsb: ERROR: File /Users/xxx/Sites/socketIO/frameworks/js-bindings/bindings/manual/network/jsb_socketio.cpp: Line: 272, Function: js_cocos2dx_SocketIO_emit Error processing arguments 

你不能把一个javascript对象“foo”作为第二个参数。 正如它在SocketIO.h中定义的那样:

 void emit(std::string eventname, std::string args); 

第二个参数是一个string。 Cocos2d-js无法自动将JavaScript对象“foo”转换为std :: string。 但是,cocos2d-js可以通过jsval_to_std_string()将一个javascriptstring转换为std :: string。

如果要发送对象,则可以将对象作为string发送,并在接收对象时进行解码。

Interesting Posts