如何让 webmachine 与 websocket 配合良好?
Webmachine 似乎是构建 REST Web 服务的一个很棒的系统,但我知道它不提供 websocket 兼容性。我的问题相当简单:在使用 webmachine 构建的 Web 服务之上添加 websocket 功能的好方法是什么?
Webmachine seems like a great system to build REST web services, but I know it does not provide websocket compatibility. My question is rather straightforward : What would be a good approach to add websocket capabilities on top of a web service built with webmachine?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为此,我正在与 Webmachine 一起运行 Misultin 。
I'm running Misultin alongside Webmachine for that exact matter.
为了在 webmachine 中轻松使用 websockets,我通过更改 webmachine(添加支持 mochiweb_websockets )和 mochiweb(添加支持安全 websockets )的来源来实现。
您可以通过以下链接从 git 完整解决方案(支持 websockets 的 webmachine)下载:
https://github.com/Dryymoon/webmachine.git
通过此链接示例使用解决方案。
或者如果想更深入地挖掘:
我只更改了两个源文件:
1) webmachine_decision_core.erl 更改(添加支持 websocket 处理程序)。
2) mochiweb_websocket.erl(添加对安全 websockets 的支持并修补现有的补丁)。
For easy use websockets in webmachine I implemented that by changing sources of webmachine (adding support mochiweb_websockets ) and mochiweb (add support secure websockets).
You can download from git full solution (webmachine with websockets support) by this link:
https://github.com/Dryymoon/webmachine.git
And by this link example usage of solution.
Or if want dig a little deeper:
I changed only two files of sources:
1) webmachine_decision_core.erl changed (add support websocket handler).
2) mochiweb_websocket.erl (add support secure websockets and patch existig).
迟到的答案,但只是偶然发现了这一点,但另一种选择是运行 SimpleBridge (https://github.com/nitrogen/ simple_bridge),它添加了一个抽象层(使用 webmachines 路由系统有条件地绕过),为它支持的任何 erlang web 服务器(包括 webmachine)添加了 websocket 支持。
Late answer, but just stumbled upon this, but another option is to run SimpleBridge (https://github.com/nitrogen/simple_bridge), which adds an abstraction layer (conditionally bypassed using webmachines routing system) which adds websocket support to any erlang webserver it supports (includes webmachine).