AzK*_*Kai 9 java client android websocket andengine
我正在使用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)
{
}
}
Run Code Online (Sandbox Code Playgroud)
但是,即使客户端有一个监听器,也不会从服务器调用它:
mClient = new WebSocketClient(URI.create("ws://some_ip:8080/wstest"), new WebSocketClient.Listener()){
Run Code Online (Sandbox Code Playgroud)
侦听器在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);
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法弄清楚为什么这不能正常工作.因为它以前工作过......
有时,当设备失去互联网连接时,无法正确检测到(Java 在这种情况下并不那么聪明;))
除此之外。您可以使用以下命令激活调试打印输出吗WebSocketImpl.DEBUG = true;
该库会以特定的时间间隔自动向端点发送 ping,如果没有收到 ping,则假定端点已断开连接!
归档时间: |
|
查看次数: |
989 次 |
最近记录: |