【问题标题】:Are there any good reasons to use Websockets outside the browser?在浏览器之外使用 Websockets 有什么好的理由吗?
【发布时间】:2011-05-11 02:21:11
【问题描述】:

Websocket 专为浏览器中的快速双向通信而设计。假设您可以控制服务器和本机客户端(例如 iOS 或 Mac 应用程序),是否有充分的理由或情况通过 websocket 而不是使用 HTTP 库进行通信?

【问题讨论】:

    标签: cocoa ios websocket


    【解决方案1】:

    我将回答几个不同的问题,希望最终能回答您的问题:

    • 是否有理由从客户端使用 WebSockets 而不是 HTTP? 是的

      • 与 HTTP 相比,WebSockets 是双向、全双工、低延迟和低开销的。

      • 与 HTTP/AJAX/COMET 相比,延迟和开销较低的部分原因在于您不必为每个请求重新建立连接。

    • 是否有理由从客户端使用 WebSockets 而不是原始套接字? 是的

      • 最初的 WebSockets 握手是 HTTP 服务器友好的(并且具有一些源和哈希交换安全机制)。它允许 Web 服务器轻松更新以支持重定向或代理 WebSockets 连接到真正的 WebSockets 服务器应用程序。

      • WebSockets 的另一个好处是它是一个框架协议,它允许应用程序专注于有用的功能,而无需处理自己的框架和缓冲。

      • 通过 websockify 之类的方式将 WebSockets 支持添加到现有 TCP 套接字服务器或代理相当容易。免责声明:我制作了 websockify。

      • 从服务器的角度来看,WebSockets 是一个胜利,因为它们可以通过独立客户端或浏览器访问。这意味着将会有越来越多的当前基于 TCP 套接字的服务将通过 WebSockets 公开。因此,现在向客户端添加 WebSockets 支持将在未来得到回报。

    【讨论】:

    • 你能告诉客户端如何访问我的 websocket 的数据负载(我可以在我的谷歌浏览器开发工具中看到)吗?
    • 在 Chrome 开发工具中,选择顶部的网络标签。然后选择 WS 子选项卡。左侧是页面中的 websocket 连接列表。单击您要查看的那个。右侧疼痛显示有关连接的信息。默认情况下,它显示标题,但如果您选择该帧顶部的帧,它将显示每个帧的数据。
    • 是的,我知道。我想知道我是否可以将 Fames 中显示的数据传输到我的本地计算机。有没有办法远程访问数据?
    • 我不相信有对此的内置支持,但这个答案可能会让你开始:stackoverflow.com/questions/29953531/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-11-20
    相关资源
    最近更新 更多