是否可以使用 javascript Websocket 发送 ping 操作码?

Nah*_*zes 6 javascript websocket

我有一个 websocket 客户端,我希望它向我的 WS 服务器发送 ping 帧。根据RFC 6455, ping 帧由操作码 %x9 表示,但我不知道是否可以从浏览器发送。

任何帮助将不胜感激

wnt*_*wrk 1

在原始帖子中的评论的基础上,您可以通过 websocket 手动发送 ping。

ws 库的 Daniel W. 的链接有一个ping()可以从有效的 websocket 客户端调用的方法。请参阅此处的示例。

如果您编写了自己的 websocket 库,那么您必须遵守RFC6455 Websocket 协议中概述的标准框架。

您应该能够使用正确的标头和控制操作码打包缓冲区,并通过升级后的 HTTP1.1 TCP 连接发送它。

编辑:
进一步的研究表明,在撰写本文时,本机Websocket 客户端不支持 Ping 方法,并且发送方法似乎仅支持有效负载而不支持命令消息,其中包括 ping 等命令的操作码。

一种选择可能是采用基于 WASM 的解决方案,该解决方案可以建立非 XHR 或非基于 fetch 的 TCP 连接,但这会带来一系列完全不同的挑战。