Уведомления

Группа в Telegram: @pythonsu

#1 Март 9, 2012 20:54:02

genry
От:
Зарегистрирован: 2012-03-09
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

реализация websocket сервера.проблема

Передо мной встала задача реализовать ручками простой сервер на питоне с поддержкой 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



Отредактировано (Март 9, 2012 20:57:09)

Офлайн

#2 Май 9, 2012 22:35:19

Garfeild
Зарегистрирован: 2012-05-09
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

реализация websocket сервера.проблема

Не знаю на сколько может быть актуально, но сам столкнулся с такой проблемой. В итоге я её победил – всё зависит от того, какая версия websocket используется браузере.

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

Приведенный же код работает с hybi-00/hixie-76.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version