Java 如何从android应用程序连接到web套接字服务器

Java 如何从android应用程序连接到web套接字服务器,java,android,websocket,Java,Android,Websocket,我用java开发了一个聊天web套接字应用服务器,还创建了一个小型android聊天应用程序 import android.util.Log; import org.java_websocket.client.WebSocketClient; import org.java_websocket.drafts.Draft_17; import org.java_websocket.handshake.ServerHandshake; import java.net.URI; import java

我用java开发了一个聊天web套接字应用服务器,还创建了一个小型android聊天应用程序

import android.util.Log;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft_17;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;

public class MyWebSocketClient {
    private WebSocketClient mWebSocketClient;

    public void connect_to_server() {
        URI uri;
        try {
            uri = new URI("ws://172.16.0.146:8082/PChat/chat");
        } catch (URISyntaxException e) {
            e.printStackTrace();
            return;
        }

        Map<String, String> headers = new HashMap<>();

        mWebSocketClient = new WebSocketClient(uri, new Draft_17(), headers, 0) {
            @Override
            public void onOpen(ServerHandshake serverHandshake) {
                Log.i("Websocket", "Opened");
              //  mWebSocketClient.send("Hello from websocket client");
            }

            @Override
            public void onMessage(String s) {
                Log.i("Websocket", "onMessage"+s);
            }

            @Override
            public void onClose(int code, String s, boolean b) {
                Log.i("Websocket", code + ": Closed " + s);
            }

            @Override
            public void onError(Exception e) {
                Log.i("Websocket", "Error " + e.getMessage());
            }
        };
        mWebSocketClient.connect();
    }

    public void sendMessage(String message) {

        mWebSocketClient.send(message);
    }

}

如何从android连接到web套接字服务器?

使用依赖项:Java-WebSocket-1.3.0.jar

import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft_17;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;

public class WebsocketClientExample  {

    private WebSocketClient mWebSocketClient;

    public void connect_to_server() {
        URI uri;
        try {
            uri = new URI("ws://path/to/your/websocket/endpoint");
        } catch (URISyntaxException e) {
            e.printStackTrace();
            return;
        }

        Map<String, String> headers = new HashMap<>();

        mWebSocketClient = new WebSocketClient(uri, new Draft_17(), headers, 0) {
            @Override
            public void onOpen(ServerHandshake serverHandshake) {
                Log.i("Websocket", "Opened");
                mWebSocketClient.send("Hello from websocket client");
            }

            @Override
            public void onMessage(String s) {
                Log.i("Websocket", "onMessage"+s);
            }

            @Override
            public void onClose(int code, String s, boolean b) {
                Log.i("Websocket", code + ": Closed " + s);
            }

            @Override
            public void onError(Exception e) {
                Log.i("Websocket", "Error " + e.getMessage());
            }
        };
        mWebSocketClient.connect();
    }
}
import org.java_websocket.client.WebSocketClient;
导入org.java_websocket.drafts.Draft_17;
导入org.java_websocket.handshake.ServerHandshake;
导入java.net.URI;
导入java.net.URISyntaxException;
导入java.util.HashMap;
导入java.util.Map;
公共类WebsocketClientExample{
私有WebSocketClient mWebSocketClient;
public void connect_到_服务器(){
URI;
试一试{
uri=newURI(“ws://path/to/your/websocket/endpoint”);
}捕获(URISyntaxException e){
e、 printStackTrace();
返回;
}
Map headers=newhashmap();
mWebSocketClient=新WebSocketClient(uri,新草稿_17(),标题,0){
@凌驾
公用无效onOpen(服务器握手服务器握手){
Log.i(“Websocket”、“Opened”);
发送(“来自websocket客户端的您好”);
}
@凌驾
消息上的公共void(字符串s){
Log.i(“Websocket”、“onMessage”+s);
}
@凌驾
公共void onClose(int代码、字符串s、布尔值b){
Log.i(“Websocket”,代码+”:关闭“+s);
}
@凌驾
公共无效申报人(例外e){
Log.i(“Websocket”,“Error”+e.getMessage());
}
};
mWebSocketClient.connect();
}
}

我使用了您的代码,但连接立即中断。
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.drafts.Draft_17;
import org.java_websocket.handshake.ServerHandshake;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.HashMap;
import java.util.Map;

public class WebsocketClientExample  {

    private WebSocketClient mWebSocketClient;

    public void connect_to_server() {
        URI uri;
        try {
            uri = new URI("ws://path/to/your/websocket/endpoint");
        } catch (URISyntaxException e) {
            e.printStackTrace();
            return;
        }

        Map<String, String> headers = new HashMap<>();

        mWebSocketClient = new WebSocketClient(uri, new Draft_17(), headers, 0) {
            @Override
            public void onOpen(ServerHandshake serverHandshake) {
                Log.i("Websocket", "Opened");
                mWebSocketClient.send("Hello from websocket client");
            }

            @Override
            public void onMessage(String s) {
                Log.i("Websocket", "onMessage"+s);
            }

            @Override
            public void onClose(int code, String s, boolean b) {
                Log.i("Websocket", code + ": Closed " + s);
            }

            @Override
            public void onError(Exception e) {
                Log.i("Websocket", "Error " + e.getMessage());
            }
        };
        mWebSocketClient.connect();
    }
}