【问题标题】:Do I need a server to use HTML5's WebSockets?我需要一个服务器来使用 HTML5 的 WebSockets 吗?
【发布时间】:2010-12-04 12:58:45
【问题描述】:

使用 WebSockets 时,我需要编写服务器代码吗?换句话说,我的客户端应用程序中的 JavaScript 是否需要连接到专门的服务器,或者我现有的 Apache 服务器是否可以支持这一点?

【问题讨论】:

    标签: html websocket


    【解决方案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。对此感到抱歉。
            猜你喜欢
            • 2011-05-23
            • 2014-10-24
            • 1970-01-01
            • 2020-04-18
            • 1970-01-01
            • 2013-01-23
            • 2014-03-10
            • 2013-04-08
            • 2012-07-02
            相关资源
            最近更新 更多