4.18

安卓应用中的 WebSocket 通信
WebSocket 为安卓应用提供了实时双向通信能力,以下是 Java 实现的关键步骤:

  1. 添加依赖
    groovy
    implementation 'org.java-websocket:Java-WebSocket:1.5.3'
  2. 创建 WebSocket 客户端
    java
    import org.java_websocket.client.WebSocketClient;
    import org.java_websocket.handshake.ServerHandshake;

import java.net.URI;
import java.net.URISyntaxException;

public class MyWebSocketClient extends WebSocketClient {
public MyWebSocketClient(String serverUri) throws URISyntaxException {
super(new URI(serverUri));
}

@Override
public void onOpen(ServerHandshake handshakedata) {
    // 连接建立时调用
    send("Hello, server!");
}

@Override
public void onMessage(String message) {
    // 接收到消息时调用
    Log.d("WebSocket", "Received: " + message);
}

@Override
public void onClose(int code, String reason, boolean remote) {
    // 连接关闭时调用
    Log.d("WebSocket", "Closed: " + reason);
}

@Override
public void onError(Exception ex) {
    // 发生错误时调用
    Log.e("WebSocket", "Error: " + ex.getMessage());
}

}
3. 在 Activity 中使用 WebSocket
java
public class MainActivity extends AppCompatActivity {
private MyWebSocketClient client;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    try {
        client = new MyWebSocketClient("ws://echo.websocket.org");
        client.connect();
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
}

@Override
protected void onDestroy() {
    super.onDestroy();
    if (client != null && client.isOpen()) {
        client.close();
    }
}

public void sendMessage(String message) {
    if (client != null && client.isOpen()) {
        client.send(message);
    }
}

}

posted @ 2025-04-18 13:55  Echosssss  阅读(9)  评论(0)    收藏  举报