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连接,那么您可能希望将它们一起运行(特殊情况下紧密集成).

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些