从autobahn android websocket客户端发送ping消息

时间:2014-05-14 09:58:51

标签: android websocket autobahn

我使用autobahn android web socket库来构建我的Web套接字客户端应用程序。 为了使Web套接字连接保持很长时间,我需要定期从客户端发送ping消息。

如何使用auotbahn android web socket库?

2 个答案:

答案 0 :(得分:0)

AutobahnAndroid的WebSocketWriter supports客户端pong消息,以及AutobahnPython claims以下内容:

  

通常不需要对Pings / Pongs进行显式处理 - AutobahnPython将在幕后做正确的事。

但是,在执行简单的聊天客户端 - 服务器设置时,我发现没有这样的ping / pong心跳消息。

根据我的阅读,从文档和来源都不清楚启用隐式Autobahn *心跳的全部要求。

我的个人解决方案涉及在 onConnection 期间从服务器发出ping以及相应的 onMesssage ,以及类似于以下客户端代码 onMessage 的内容:

if (payload.equals("ping from the server"))) {
    handler.postDelayed(new Runnable() {
        @Override
            public void run() {
                myWebSocket.sendTextMessage("pong from the client");
            }
    }, 1000L);
}

...在服务器收到ping后1秒钟安排客户端发送的pong响应。

答案 1 :(得分:0)

您可以使用我刚刚提交的提款请求

https://github.com/tavendo/AutobahnAndroid/pull/67

添加了sendPingMessage(byte [] payload)和onPongMessage(byte [] payl)。