2015-10-17 16 views
2

Я решил переписать игрового клиента с javascript на unity3d. Java-сервер сокетов на netty.Что посылает json из unity3d

Я отправляю json, используя C# library socket.io.

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

Debug.Log(j.ToString()); показывает {"q":"q"}, но сообщения сервера всегда с 42 до текста 42["{"q":"q"}"].

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

Что это за 42? 42 показано, независимо от того, что пришло json. Json из javascript получен правильно.

+0

Может быть размер данных в байтах? – Constant

+0

Не думаю, что '42 [" q ", {" test1 ":" test1 "," test2 ":" test1 "," test3 ":" test1 "," test4 ":" test1 "," test5 ": "test1", "test6": "test1", "test7": "test1", "test8": "test1", "test9": "test1", "test10": "test1", "test11": "test1 "," test12 ":" test1 "}] ' – Sapphiron

ответ

2

Проблема была в том, что первый номер указывает на socket.io EnginePacketType, а второй socketPacketType.

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

Мне кажется, что вы отправляете данные через socket.io, а затем пытаетесь получить его через netty.

Socket.io не является (чисто) библиотекой для открытия подключения к сети и отправки данных через нее, у нее есть протокол сообщений и каналов поверх слоя веб-кластера.

Постарайтесь, чтобы обе стороны использовали одну и ту же библиотеку.

+0

Да, причина в том, что. – Sapphiron

Смежные вопросы