【问题标题】:Is there a case for Websocket clients to close the connection?Websocket客户端是否有关闭连接的情况?
【发布时间】:2013-10-17 03:26:12
【问题描述】:

请原谅我在这里的任何无知或术语错误。我在一家软件公司工作,但从事的是支持工作,而不是开发工作。

我们开发了一个连接到 websocket 服务器来传递和接收消息的工具。对于接收消息,它会打开一个连接并接收消息(将它们传递给其他组件进行进一步处理),直到服务器关闭连接。

我使用简单的 Websocket 服务器对其进行了测试 (ws://echo.websocket.org:80),我使用我们的工具将消息 ping 到服务器并接收回来。但是服务器并没有关闭连接,我们的工具只是继续监听,而我本以为它会停止。

我向我们的开发团队建议,我们可能希望添加一个设置,让客户端在收到 X 条消息或 Y 时间长度后关闭连接,但他们质疑这是否现实。

那么,Websocket 客户端是否应该能够关闭连接?从开发的角度来看,这是不好的做法吗?客户端甚至可以判断消息是否已完成?如果客户端可以关闭连接,什么样的场景可能需要这样做?

【问题讨论】:

    标签: websocket


    【解决方案1】:

    那么,Websocket 客户端是否应该能够关闭连接

    WebSocket API 包含一个close 函数。这是为了让客户端可以关闭与服务器的连接。

    从开发的角度来看,这是不好的做法吗? 如果客户端可以关闭连接,什么样的场景可能需要这样做?

    这真的取决于应用程序。但是 - 如上所述 - 它是 WebSocket API 的一部分,因此这样做是完全有效的。

    客户端甚至可以判断消息是否已完成?

    WebSocket.onmessage 在收到消息时被调用。是否已收到整个消息实际上取决于您的应用程序的角度。如果您的服务器一次性发送完整的消息,那么很可能会收到完整的消息。您可以在WebSocket protocol documentation 中找到确切的详细信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      • 2011-01-05
      • 2011-03-09
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多