微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebSockets是否真的意在由Web服务器处理?

WebSocket标准尚未得到批准,但是从草案看来,该技术的意图是在Web服务器中实现. pywebsocket实现了可以专用或加载为Apache插件的WebSocket服务器.

所以我想知道的是:WebSockets的理想用途是什么?使用专用的WebSocket服务器实现服务是否有意义,或者更好的是将其重新思考到运行在支持WebSocket的Web服务器上?

解决方法

WebSocket协议设计有三种模式:

>与任何Web服务器完全分开运行的WebSocket服务器.
>与Web服务器分开运行的WebSocket服务器,但从Web服务器代理到Websocket服务器的流量(允许Websocket和HTTP流量在同一端口上共存)
>在Web服务器中作为插件运行的WebSocket服务器.

您选择的模型实际上取决于您正在尝试构建的应用程序以及可能限制您的选择的其他一些限制.

例如,如果您的应用程序将从单个Web服务器提供,并且WebSocket连接将始终返回到同一台服务器,则只需将WebSocket服务器作为Web服务器中的插件/模块运行即可.

另一方面,如果您有一个可从许多不同网站使用的通用WebSocket服务(例如,您可以从WebSocket服务器提供连续的低延迟流量更新),那么您可能希望将WebSocket服务器与任何Web服务器.

基本上,您的WebSocket服务与Web服务之间的集成越紧密,您就越有可能一起运行在同一个端口上.

有一些限制可能会迫使一个模型或另一个

>如果您控制服务器而不是传入的防火墙规则,则您可能别无选择,只能在与HTTP / HTTPS服务器相同的端口(例如80和443)上运行WebSocket服务器.在这种情况下,您将不得不使用Web服务器插件或代理到真正的WebSocket服务器.>另一方面,如果您在运行WebSocket服务器的服务器上没有超级用户权限,则可能无法使用端口80和443(低于1024通常是特权端口范围),在这种情况下,您是否在同一端口上运行HTTP / S和WebSocket服务器并不重要.>如果您在Web服务器中具有基于cookie的身份验证(例如OAuth),并且想要重新使用WebSocket连接,那么您可能希望将它们一起运行(特殊情况下紧密集成).

原文地址:https://www.jb51.cc/html/231238.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐