2015-10-17 21 views
2

我决定在unity3d上用JavaScript重写游戏客户端。 netty上的Java套接字服务器。什么是从unity3d发送json

我使用c#库socket.io发送json。

JSONObject j = new JSONObject(); 
j.AddField("q", "q"); 
Debug.Log(j.ToString()); 
socket.Emit(j.ToString()); 

Debug.Log(j.ToString());显示{"q":"q"},但文本42["{"q":"q"}"]之前服务器的消息总是配有42。

System.out.println(((TextWebSocketFrame) frame).text()); 
=> 42["{"q":"q"}"] 

这是什么42?显示了42,不管json是什么。 从JavaScript正确接收Json。

+0

可能是以字节为单位的数据大小? – Constant

+0

我不这么认为''42''q“,{”test1“:”test1“,”test2“:”test1“,”test3“:”test1“,”test4“:”test1“,”test5“ “测试1”, “TEST6”: “测试1”, “TEST7”: “测试1”, “test8”: “测试1”, “test9”: “测试1”, “test10”: “测试1”, “TEST11”:“测试1 “,”test12“:”test1“}] ' – Sapphiron

回答

2

问题是,第一个数字表示socket.io EnginePacketType,第二个socketPacketType

EnginePacketType.MESSAGE = 4; 
packet.socketPacketType(EVENT) = 2; 
1

它看起来像我通过socket.io发送数据,然后尝试通过netty接收它。

Socket.io不是(纯粹)用于打开websocket连接并通过它发送数据的库,它具有位于websocket图层顶部的消息和通道协议。

请确保双方使用相同的库。

+0

是的,原因是这样的。 – Sapphiron