从浏览器发送websocket ping / pong框架

我一直在阅读关于ping / pong消息在websockets保持连接活着,但我不知道他们是什么。 它是一个独特的框架types? (我没有看到与乒乓相关的chrome中的JavaScript WebSocket对象上的任何方法)。 或者它只是一个devise模式(例如,我直接发送“ping”或任何其他string到服务器,并有响应)。 乒乓球是否与延续帧有关?

我问的原因是我使用的是一个运行在Mongrel2后面的python框架,所以我想知道是否有一种方法可以发送一个特定的ping / pong消息来告诉它在不需要我的python应用程序的情况下保持连接的活动担心。 类似于有一个单独的HTTP方法,我猜。 我想像一个专门的ping / pong消息帧可能比string“ping”更简单(服务器和networking上的负载更less),尽pipe这可能不会太重要。

编辑:我只是看着RFC 6455 ,它看起来像乒乓球肯定是控制框架types与自己的操作码。 那么如何从Chrome中的JavaScript发送Ping框?

没有Javascript API发送ping帧或接收pong帧。 这是由您的浏览器支持,或不支持。 也没有API来启用,configuration或检测浏览器是否支持并使用ping / pong帧。 有关于为此创buildJavascript乒乓API的讨论 。 将来ping有可能是可configuration/可检测的,但是Javascript不太可能直接发送和接收ping / pong帧。

但是,如果您同时控制客户端和服务器代码,则可以在更高级别上轻松添加ping / pong支持。 如果你还没有,你需要在消息中添加一些types的消息types头/元数据,但这很简单。 除非你计划每秒钟发送ping数百次或者同时有数千个客户端,否则这个开销将会很小。

Ping意味着只能从服务器发送到客户端,浏览器应该尽快用Pong OpCode自动回答。 所以你不必担心更高的水平。

尽pipe并不是所有的浏览器都支持标准,但是它们在实现这种机制时可能会有一些差异,甚至可能意味着没有Pong响应function。 但是我个人使用的是Ping / Pong,并且从来没有见过在低层客户端实现不实现这种OpCode和自动响应的客户端。