我需要一个服务器来使用 HTML5 的 WebSockets 吗?
Posted
技术标签:
【中文标题】我需要一个服务器来使用 HTML5 的 WebSockets 吗?【英文标题】:Do I need a server to use HTML5's WebSockets? 【发布时间】:2010-12-04 12:58:45 【问题描述】:使用 WebSockets 时,我需要编写服务器代码吗?换句话说,我的客户端应用程序中的 javascript 是否需要连接到专门的服务器,或者我现有的 Apache 服务器是否可以支持这一点?
【问题讨论】:
【参考方案1】:服务器必须支持网络套接字。在 HTTP 中第一次握手之后,服务器和客户端打开一个套接字连接。服务器必须能够理解并接受此握手。
在我的上一个项目中,我们使用最新的 Jetty 版本非常成功地运行了 Web 套接字连接。
2014 年 2 月 27 日: 现在,我还在.net 下使用 XSockets.net 实现 websockets,并且工作起来就像一个魅力,你甚至不需要网络服务器(自托管)。 ASP.NET 的 WebSocket 实现也很好用。
【讨论】:
github 上的 cwebsocket 是一个不错的小型服务器。很容易将其扩展为 http 服务器。【参考方案2】:在这种情况下,服务器的角色就来了:
在 html 5 中,WebSocket 类似于 fone(2 路通信)而不是步话机。
http 协议升级为 websocket 协议。(wss:// from ws://)
SERVER 应该能够打开双工通道,因此同意双工通信。
请通过此链接:http://www.html5rocks.com/en/tutorials/websockets/basics/
如果使用 php,请查看 RATCHET。
谢谢。
【讨论】:
【参考方案3】:目前正在为 Apache 的谷歌代码开发一些插件...
根据定义,像普通套接字一样的 websocket 是客户端-服务器,所以是的,你需要一个服务器。但是,还有一个等待 Apache 插件的替代方法。
我正在使用托管服务器 http://www.achex.ca。它是免费的,你有关于如何使用服务器的 javascript 教程。 websockets 开发的良好开端。
服务器基本上是一个消息路由器,您可以连接到它并将其用作所有 websocket 客户端的交汇点。
简短回答:是的,您需要专门的服务器,Apache 不附带 websockets。或者替代方案,查看www.achex.ca。
【讨论】:
【参考方案4】:Perl Mojolicious 服务器支持 Web 套接字,实现只需几行代码。
Node.js 有多个 WebSocket 库,但最新、最强大、最支持最新规范的细节各不相同,因此请谨慎选择。
Apache Active MQ 以及它实现的 stomp 协议也值得一看。
【讨论】:
【参考方案5】:是的,你需要编写服务器代码。
我推荐另一个基于 php 的 web socket 服务器:ratchet。 而这个 link 正在对棘轮和 sockJS 之间的 webSocket 服务器进行基准测试。
客户端和服务器端代码和浏览器支持的完整列表请查看link
【讨论】:
【参考方案6】:当然你需要一个 WebSocket 服务器。但是有很多不同语言的免费websocket服务器,比如Java中的jWebSocket和.NET中的SuperWebSocket,你可以直接使用它们。
【讨论】:
为什么说“当然”需要服务器?它可以点对点运行,不是吗? @JonathanStark 没有。 Websocket 只是客户端/服务器。他们不是点对点的。对于点对点解决方案,请查看 webrtc 规范。 我的错。正在考虑WebRTC。对此感到抱歉。以上是关于我需要一个服务器来使用 HTML5 的 WebSockets 吗?的主要内容,如果未能解决你的问题,请参考以下文章