顾名思义,应仅从服务器发送Ping帧,还是最好由两个端点发送它们?如Websocket RFC中所述:
注意:Ping帧可以用作保持活动状态...
因此,通过让一个端点发送ping请求,它应该保持连接打开,对不对?
上一行的第二部分是:
或作为一种方法来验证远程端点仍在响应。
我是websockets概念的新手,但是如果服务器关闭了连接,是否不会通知客户端?
WebSocket RFC 的片段:
要使用状态代码(第 7.4 节)/code/ 和可选的关闭原因(第 7.1.6 节)/reason/ 启动WebSocket 关闭握手,端点必须发送一个关闭控制帧,如第 5.5.1 节中所述,其状态代码设置为/code/,其关闭原因设置为/reason/。一旦端点发送并接收到关闭控制帧,该端点应该关闭 WebSocket 连接,如第 7.1.1 节中定义的那样。
我正在尝试使用Gorilla WebSocket包通过以下代码进行关闭握手:
服务器:
// Create upgrader function
conn, err := upgrader.Upgrade(w, r, nil)
// If there is an error stop everything.
if err != nil {
fmt.Println(err)
return
}
for {
// Read Messages
_, _, err := conn.ReadMessage()
// Client is programmed to send a close frame immediately...
// When reading close frame resend close frame with …Run Code Online (Sandbox Code Playgroud) 在实例中使用Hijack()时http.ResponseWriter
Hijack() (net.Conn, *bufio.ReadWriter, 错误)
read from thenet.Conn和 the 和有*bufio.ReadWriter什么不一样?