我想连接到一个开放的Spark websocket服务器。对于我来说,这个服务器位于ws://192.168.56.1:4567/chat/。当我尝试使用在计算机上运行的JavaScript连接到它时,它工作:
var websocket = new WebSocket("ws://192.168.56.1:4567/chat/");
这段代码成功连接到websocket。在Android上使用java-websocket,这段代码看起来像这样:
val client = Client(URI("ws://192.168.56.1:4567/chat/"))
我使用Kotlin,等效的Java代码是
Client client = new Client(new URI("ws://192.168.56.1:4567/chat/"));
其中Client是扩展WebSocketClient的类。当我尝试连接到websocket时,它根本不起作用并且超时,就好像这个websocket根本不存在一样。我确实在我的manifest文件中启用了INTERNET:
<uses-permission android:name="android.permission.INTERNET" />
<application
[...]
,我试着ping谷歌,这工作,所以我真的不知道是什么原因。谢谢你的帮助!
由于某些原因,你必须像这样使用Draft_17:
val client = Client(URI("ws://192.168.56.1:4567/chat/"), Draft_17())