gpt4 book ai didi

android - Android 客户端的 Web 套接字连接失败

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:37:46 27 4
gpt4 key购买 nike

我正在为服务器开发一个 Android 客户端,该客户端要求持续将音频流交换到基于 WebSockets 的服务器。

当与 web 套接字连接时,android 客户端抛出以下错误。

Closed draft org.java_websocket.drafts.Draft_10@b2fe9b40 refuses handshake

但我尝试使用以下网络套接字 uri。连接成功。ws://echo.websocket.org

Code:

URI uri;
try {
// uri = new URI(
// "ws://echo.websocket.org");
uri = new URI(
"ws://serverIP:9090/WebRtc/serverendpoint");

} catch (URISyntaxException e) {
e.printStackTrace();
return;
}

mWebSocketClient = new WebSocketClient(uri) {
@Override
public void onOpen(ServerHandshake serverHandshake) {
Log.i("Websocket", "Opened");
mWebSocketClient.send("Hello from " + Build.MANUFACTURER + " "
+ Build.MODEL);
}

@Override
public void onMessage(String s) {
final String message = s;
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView textView = (TextView) findViewById(R.id.messages);
textView.setText(textView.getText() + "\n" + message);
}
});
}

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

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

我尝试从浏览器对我使用过的网络套接字(ws://serverIP:9090/WebRtc/serverendpoint)进行回显测试。它正在正确连接。但是当我从移动设备或模拟器上尝试时,没有任何效果。

请帮我解决这个问题。

最佳答案

我只是找到了另一种简单的方法来解决这个问题。

改变下一行

mWebSocketClient = new WebSocketClient(uri){

mWebSocketClient = new WebSocketClient(uri, new Draft_17()){

我在我的服务器日志中发现了提示:

User Agent: [unset] requested WebSocket version [8], Jetty supports version: [13]

正如您在下面的链接中看到的,版本 8 是 Draft_10,版本 13 是 Draft_17。

Link to supported Websocket-Versions

关于android - Android 客户端的 Web 套接字连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com