Java / Android websocket无法连接到Spark websocket服务,但JavaScript可以

我想连接到一个打开的Spark websocket服务器。 对我来说,这台服务器位于ws://192.168.56.1:4567 / chat /。 当我尝试使用运行在计算机上的JavaScript连接到它时,它可以工作:

var websocket = new WebSocket("ws://192.168.56.1:4567/chat/"); 

此代码成功连接到websocket。 在使用java-websocket的Android上,这段代码如下所示:

 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根本不存在。 我在我的清单文件中启用了INTERNET:

 <uses-permission android:name="android.permission.INTERNET" /> <application [...] 

我试图平谷歌和工作,所以我真的不知道是什么原因造成的。 感谢您的任何帮助!

所以出于某种原因,你必须像这样使用Draft_17:

 val client = Client(URI("ws://192.168.56.1:4567/chat/"), Draft_17()) 

这没有很好的记录。