Рубрики
Разработка

Wampy.js. Simple WebSocket Application Messaging Protocol Javascript client-side implementation

В одном из своих проектов мне нужно было реализовать клиент-серверное общение через веб-сокеты. Придумывать свой формат JSON-сообщений как-то не хотелось, поэтому я решил заюзать WAMP. WAMP расшифровывается как WebSocket Application Messaging Protocol, не путать с Windows/Apache/MySQL/PHP :-). Это уже готовая спецификация, в рамках которой описано использование RPC и Publish/Subscribe. На сайте описана первая версия этого протокола. Но уже в ближайшем будущем появится вторая, в которой много интересных плюшек. Более того, уже есть некоторое количество реализаций как серверной, так и клиентской стороны. Но, что-то, единственная реализация браузерной клиентской части на JavaScript, а именно AutobahnJS, меня как-то не зацепила. Поэтому я, не долго думая, решил написать свой велосипед. В результате на свет появилась Wampy.js.

В общем, если кому-то нужны RPC или PubSub через вебсокеты, очень советую посмотреть на WAMP. Ну и на мою библиотечку тоже :-). Wampy использует родной браузерный WebSocket, добавляя к нему некоторые плюшки, например, автореконнект, ибо в разных браузерах с вебсокетами бывают разные неожиданные сбои, например, как в какой-то версии Firfox’а веб-сокет закрывался по нажатию Esc на странице.

Исходники выложены на github, равно как и документация. Комментарии, замечания, предложения, улучшения приветствуются, особенно в виде Pull Request’ов на github’е.