Не первый раз приходится проектировать приложения под вебсокеты, но впервые самому пришлось их программировать на go. Сейчас для этого есть две библиотеки:

* http://code.google.com/p/go.net/websocket
* http://github.com/gorilla/websocket

Ясно дело, понадобились средства отладки, т.к. традиционных утилит под отладку HTTP здесь недостаточно. С вебсокетами по сути мы работаем с другим протоколом, HTTP используется только для инициализации соединения. Поюзав разные онлайновые сервисы, написал две простые утилиты — клиент и сервер для удобства локальной отладки. Клиент позволяет отправлять произвольные тексты на сервер, сервер работает в режиме «эхо», отфутболивая запросы обратно клиенту. Плюс клиент и сервер обмениваются пингами, как того желают реализации вебсокетных приложений. Клиент и сервер можно использовать как друг с другом, для отладки проксирующего приложения (как раз в этом состояла моя задача), так и по отдельности. Логи разной степени подробности валятся на экран, по идее этого достаточно. Глубокого анализа и вывода дампов утилиты принципиально не предполагают, т.к. для этого есть готовые средства — я использую для таких целей Wireshark. Код утилит небольшой, при необходимости, полагаю, несложно будет адаптировать их под другие задачи. Утилиты используют библиотеку из Gorilla Toolkit, я к ней как-то больше привык, ещё со времён черновых версий протокола, до принятия RFC4655. Код на гитхабе под GPL.

#websockets   #rfc4655   #golang
Shared publiclyView activity