【问题标题】:Send ping message from autobahn android websocket client从高速公路 android websocket 客户端发送 ping 消息
【发布时间】:2014-05-14 09:58:50
【问题描述】:

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

如何使用 auotbahn android web socket 库做到这一点?

【问题讨论】:

    标签: android websocket autobahn


    【解决方案1】:

    AutobahnAndroid 的 WebSocketWriter supports 客户端 pong 消息和 AutobahnPython claims 如下:

    Pings/Pongs 的显式处理通常是不必要的 - AutobahnPython 会在后台做正确的事情。

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

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

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

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

    ... 调度客户端发送的 pong 响应,在接收到来自服务器的 ping 后 1 秒。

    【讨论】:

      【解决方案2】:

      你可以使用我刚刚提交的拉取请求

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-26
        • 1970-01-01
        • 1970-01-01
        • 2017-09-15
        • 1970-01-01
        • 2021-07-18
        • 2015-01-17
        • 2016-05-13
        相关资源
        最近更新 更多