【问题标题】:WebSocket When To Use Close HandshakeWebSocket 何时使用关闭握手
【发布时间】:2016-05-25 07:20:39
【问题描述】:

我正在尝试使用 Gorilla WebSocket 包,我想知道是否有一种方法可以根据从 .ReadMessage 检索到的错误来确定是开始关闭握手(例如 1000 - 正常关闭)还是停止立即连接(例如 1006 - 异常关闭)。

目前我正在做的是存储我可能用来关闭 websocket 连接的错误代码列表,如果错误代码等于我列表中的代码之一,我会执行关闭握手。但是我不确定这是否符合 WebSocket 规范。

是否有其他方法可以做到这一点,或者这就是假设的方式?

【问题讨论】:

    标签: go websocket handshake gorilla


    【解决方案1】:

    应用程序应该只在应用程序决定关闭连接时发送关闭帧。 Gorilla 包处理所有其他情况。

    Gorilla 包在读取错误时发送关闭握手。 Gorilla 内部方法handleProtocolError 开始关闭握手。

    大猩猩replies to closing handshakes from the peer application.

    【讨论】:

    • 我查看了implementation of ReadMessage,至少对我来说似乎没有向连接的端点发送任何关闭帧。
    • 通过开始握手我指的是section of the WebSocket RFC
    • 方法handleProtocolError发送结束握手。
    • 很好,当连接的端点发送的帧不符合 Web Socket 规范时,它会处理错误。但是,如果我关闭了与 Code 1000 的连接,我将负责实施关闭握手。还是我还是错了?
    • 如果应用程序决定关闭连接,那么应用程序应该开始关闭握手。 Gorilla 在协议错误时开始握手,并从对等应用程序回复握手。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多