大猩猩WebSocket与golang.org/x/net/websocket比较

4
根据 Gorilla Websockets 项目 ,使用 golang.org/x/net/websocket 不可能发送 ping 和 pong 消息。同时,在 golang.org/x/net/websocket 项目页面中有以下描述:

Package websocket implements a client and server for the WebSocket protocol as specified in RFC 6455.

我有些困惑。尽管 golang.org/x/net/websocket 实现了 RFC 6455,但无法发送控制帧(取消,ping,pong),虽然这在RFC 6455 - Section Control Frames 中有说明。
那么如果我使用 golang.org/x/net/websocket 包会发生什么呢?连接会在超时后中断吗?换句话说,这里如何确保连接不会断开。
1个回答

8
根据Gorilla Websockets项目,使用golang.org/x/net/websocket无法发送ping和pong。 Gorilla README有所不同。它说golang.org/x/net包无法发送ping或接收pong。但它并没有说该包不会发送pong。
golang.org/x/net包会自动响应收到的ping请求,向对等方发送一个pong,Gorilla包也是如此。两个包都可以正确地与使用ping和pong保持连接的对等方配合使用。
使用golang.org/x/net/websocket包的应用程序无法使用ping和pong来保持连接。无法发送ping,也无法检测到是否收到了pong。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接