Я использую WebSocket для Python и JavaScriptand и до сих пор протоколом рукопожатия для Google Chrome было draft hybi-00 . Я думаю, что Google Chrome недавно изменил протокол на draft hybi-10 .
Итак, сегодня я обновил код подтверждения, и теперь WebSocket успешно создан и открыт. На событие onopen в JavaScript я отправляю простое текстовое сообщение:
viz.ws = new WebSocket("ws://127.0.0.1:5500");
viz.ws.onopen = function() {
viz.ws.send("TEST\n");
};
Мой сервер в Python получает эти данные. Тем не менее, это как-то закодировано, и я не могу получить простой текст "TEST\n"
Я отправил:
def recv_data(self, client, count):
try:
data = client.recv(count)
except:
return False
print data
print data.decode('utf-8','ignore')
return data.decode('utf-8', 'ignore')
Отпечатки возвращают это:
üàÍu┬¯é0æ║▄
u0
И они всегда разные, но отправленный текст всегда TEST\n
.
Кроме того, сервер получает эти данные, но клиент не получает никаких данных, отправленных с сервера.
Я читал, что hybi-10 использует двоичные файлы ... Я пропускаю преобразование данных в этом коде? Извините, я действительно новичок в WebSockets, и эти протоколы портят мне голову ...