![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
На стороне клиента простой html, javascript и websocket. Например:
Очень хотелось бы посмотреть тривиальную реализацию сервера на перл. Желательно через бифы(socket). -------------------- менеджер по кодеврайтингу |
|||
|
||||
| Bulat |
|
||||||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Вот что я имею на данный момент, если более подробно:
test.html:
websocket_server.pl :
В браузере выдает: Connection is closed... А скрипт пишет заголовок:
Помогите докрутиить, а, эту фичу... Ну идея банально простая... Типичный клиент-сервер..... Тока технически нужно дожать и все... -------------------- менеджер по кодеврайтингу |
||||||
|
|||||||
| Pilat66 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 27.1.2009 Репутация: 1 Всего: 1 |
Сделайте это с Mojolicious и не мучайтесь.
|
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
А можно ответтить на вопрос который интересует меня, подчеркиваю?? =) -------------------- менеджер по кодеврайтингу |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
вы с самим протоколом разобрались?
тогда можете посмотреть тут: http://cpansearch.perl.org/src/MIYAGAWA/Tw...ocket/chat.psgi, достаточно простая реализация. |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
arto, ну вот сижу ковыряюсь... по ссылке пока просмотрел по диагонали, но чуть позже гляну подробнее... Вроде как раз в ту сторону что мне и нужно было.
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| Bulat |
|
||||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Вот, что я имею на данный момент, но onopen все равно не срабатывает.... Пробовал по-разному ответный хендшейк формировать, но пока так успеха и не добился... В чем проблема - не вижу! -------------------- менеджер по кодеврайтингу |
||||
|
|||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
onopen -- это javascript?
|
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
Угу. В приведеннем мною примере javascript выводит два сообщения. Сначала WebSocket is supported by your Browser! потом Connection is closed... А хочется чтоб хотя бы раз написал Message is sent... -------------------- менеджер по кодеврайтингу |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
порты открыты?
|
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
само собой. От клиента(javascript) я хендшейк-то получаю. А вот ответный хендшейк почему-то не срабатывает
-------------------- менеджер по кодеврайтингу |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
проблема решена, пример реально работающего хендшейка:
Недочеты заключается: 1. в рфс описывается Switching Protocols, а нужно на самом деле Web Socket Protocol Handshake 2. При формировании ответного ключа необходимо дополнять символом '=', и действительно в примерах так оно и укаано, а в описании я об этом ничего не нашел 3. Символы переноса строик и возврата каретки. И здесь тоже изначально трактуется как бы само собой разумеющееся, однако были сомнения, потому что нигде конкретно это не описывается -------------------- менеджер по кодеврайтингу |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
1. RFC 6455 1.2. Protocol Overview: The protocol has two parts: a handshake and the data transfer.
2. RFC 6455 1.2. Protocol Overview: The handshake from the server looks as follows: HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: chat 3. RFC 2616 2.2 Basic Rules: HTTP/1.1 defines the sequence CR LF as the end-of-line marker for all protocol elements except the entity-body. "читайте документацию -- она рулез" (ц) чей-то |
|||
|
||||
| Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: 5 Всего: 57 |
arto, дословно перевести??
1. Протокол состоит из двух частей: хендшейк и данные 2. Хендшейк от сервера должен выглядить следующим образом(и тут же кстати как раз и неверный хендшейк) Дальше продолжать?? P.S. Давай не будем устраивать холивар, я в интернете нашел уже несколько статей, подобному моему топику, где разные программисты точно так же описывали с какими трулностями они столкнулись при реализации вебсокеты, жалобы на плохо описанный стандарт есть. всегда есть куда расти (с) Это сообщение отредактировал(а) Bulat - 12.7.2013, 14:47 -------------------- менеджер по кодеврайтингу |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
1. ну. в рфц присутствует описание протокола. или описание handshake там отсутствует?
2. а что там именно неверно? 3. по третьему пункту вопросов, как я понимаю, нет? пс. дамп хендшейка с http://www.websocket.org/echo.html: Hypertext Transfer Protocol HTTP/1.1 101 Web Socket Protocol Handshake\r\n [Expert Info (Chat/Sequence): HTTP/1.1 101 Web Socket Protocol Handshake\r\n] [Message: HTTP/1.1 101 Web Socket Protocol Handshake\r\n] [Severity level: Chat] [Group: Sequence] Request Version: HTTP/1.1 Status Code: 101 Response Phrase: Web Socket Protocol Handshake Upgrade: WebSocket\r\n Connection: Upgrade\r\n Sec-WebSocket-Accept: xO65RkfOOMva29LmSc/tSQML7ak=\r\n Server: Kaazing Gateway\r\n Date: Sat, 13 Jul 2013 08:14:15 GMT\r\n Access-Control-Allow-Origin: http://www.websocket.org\r\n Access-Control-Allow-Credentials: true\r\n Access-Control-Allow-Headers: content-type\r\n Access-Control-Allow-Headers: authorization\r\n Access-Control-Allow-Headers: x-websocket-extensions\r\n Access-Control-Allow-Headers: x-websocket-version\r\n Access-Control-Allow-Headers: x-websocket-protocol\r\n \r\n [HTTP response 1/1] |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |