Как сделать так, чтобы веб-машина играла с веб-сокетами?
Webmachine кажется отличной системой для создания веб-сервисов REST, но я знаю, что она не обеспечивает совместимость с веб-сокетами. Мой вопрос довольно прост: какой будет хороший подход для добавления возможностей веб-сокета поверх веб-сервиса, созданного с помощью веб-машины?
3 ответа
Я управляю Misultin вместе с Webmachine именно по этому вопросу.
Поздний ответ, но просто наткнулся на это, но другой вариант - запустить SimpleBridge ( https://github.com/nitrogen/simple_bridge), который добавляет уровень абстракции (условно обойденный с помощью системы маршрутизации веб-машин), который добавляет поддержку веб-сокетов для любого erlang веб-сервер, который он поддерживает (в том числе веб-машина).
Для простоты использования веб-сокетов в веб-машине я реализовал это, изменив источники веб-машины (добавив поддержку mochiweb_websockets) и mochiweb (добавив поддержку защищенных веб-сокетов).
Вы можете скачать с git full solution (webmachine с поддержкой websockets) по этой ссылке: https://github.com/Dryymoon/webmachine.git
И по этой ссылке пример использования решения.
Или, если хотите, покопайтесь немного глубже: я изменил только два файла источников:
1) изменено webmachine_decision_core.erl (добавлена поддержка обработчика websocket).
2) mochiweb_websocket.erl (добавить поддержку безопасных веб-сокетов и патчей existig).