【问题标题】:Android Websockets onMessage() never being called even on connectionAndroid Websockets onMessage() 即使在连接时也不会被调用
【发布时间】:2014-04-21 00:10:12
【问题描述】:

我正在使用 websockets 制作多人游戏,我需要通过服务器发送多种类型的数据,但是当我连接到服务器时,它应该发送回名称和数字(“类型”)和(“数据") 分别来自连接时的 websocket 库。我不需要类型,但(“数据”)对于游戏逻辑的实际工作至关重要。

以下是我的 websockets onMessage() 函数中的代码:

@Override
public void onMessage(String message)
{                       
    try 
    {
         JSONObject json = new JSONObject(message);
         if(json.has("type") && json.has("data"))
         {
             Log.d(TAG, json.getString("type"));
             Log.d(TAG, json.getString("data"));
             playerNum = Integer.parseInt(json.getString("data"));
             Log.d(TAG,"Received... Type : " +json.getString("type")+" Data : "+json.getString("data"));
         }
         if(json.has("Player1TurnOver"))
         {
             player1TurnOver = json.getBoolean("Player1TurnOver");
         }

         if(json.has("Word"))
         {
            String b = json.getString("Word");
            bWord = new char[b.length()];
            for(int i = 0; i < b.length(); i++)
            {
                 bWord[i] = b.charAt(i);
            }
         wordLength = bWord.length;
        }
     }
     catch(JSONException e)         
     {                  
     }              
}

但是即使客户端有这样的监听器,它也永远不会从服务器调用:

mClient = new WebSocketClient(URI.create("ws://some_ip:8080/wstest"), new WebSocketClient.Listener()){

监听器在 websocket 库类中初始化

public interface Listener {
    public void onConnect();
    public void onMessage(String message);
    public void onMessage(byte[] data);
    public void onDisconnect(int code, String reason);
    public void onError(Exception error);
}

我似乎无法弄清楚为什么这不能正常工作。和以前一样...

【问题讨论】:

  • 你在服务器端使用 Node.js 吗?

标签: java android websocket client andengine


【解决方案1】:

有时当设备失去互联网连接时无法正确检测到(Java 在这种情况下并不那么聪明;))

除此之外。你可以用WebSocketImpl.DEBUG = true;激活调试打印输出吗?

lib 会以特定的时间间隔自动向端点发送 ping,如果没有收到 ping,则假定端点已断开连接!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-08
    • 2018-04-14
    • 1970-01-01
    • 2019-12-30
    • 2019-05-30
    • 2011-07-27
    • 1970-01-01
    • 2019-07-10
    相关资源
    最近更新 更多