Найти - Пользователи
Полная версия: реализация websocket сервера.проблема
Начало » Python для экспертов » реализация websocket сервера.проблема
1
genry
Передо мной встала задача реализовать ручками простой сервер на питоне с поддержкой websocket. Конечна я знаю про торнадо, но задача стоит именно в реализации ручками.
Шаг с коннектом и хендшейком(обменом приватных ключей) я сделал, а вот дальше появились проблемы.
1) сообщения от клиента(браузера) приходят не читаемыми….они однозначно закодированы, я находил информацию об этом. Но так и не смог понять как их раскодировать. Ибо в документации говорится о том, что сообщение скрыто под маской (как я понимаю некий ХОР), но ключа для вскрытия этой маски клиент(браузер) почему то не отправляет мне.
2) сообщения, которые отправляет сервер, клиентом(браузером) игнорируются. Отправляю согласно документациям
conn.send(bytes(0x00))
conn.send(u'test'.encode('utf-8'))
conn.send(bytes(0xFF))
во вложение прикладываю исходник. в качестве клиента использую гугл хром и вот эту страничку http://websocket.org/echo.html
тот же исходник, что во вложении залил, на файлообменник - вот ссылка http://zalil.ru/32842776
Garfeild
Не знаю на сколько может быть актуально, но сам столкнулся с такой проблемой. В итоге я её победил – всё зависит от того, какая версия websocket используется браузере.

В случае с Chrome используется либо самая последняя (RFC 6455) либо предыдущие черновики, начиная с версии hybi-07. Для этой версии websocket сообщения (фреймы) нужно составить определенным образом, в спецификации это указано. Код формирования фреймов можно подсмотреть в Tornado

Приведенный же код работает с hybi-00/hixie-76.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB