moko-socket-io icon indicating copy to clipboard operation
moko-socket-io copied to clipboard

unknown protocol: ws

Open XDao7 opened this issue 2 years ago • 2 comments

我在Android Studio中使用implementation("dev.icerock.moko:socket-io:0.4.0")的方式引入了这个库,然后按照readme的示例代码,使用了ws://...类型的地址,发生了如下报错:

Caused by: java.lang.RuntimeException: java.net.MalformedURLException: unknown protocol: ws
	at io.socket.client.Url.parse(Url.java:52)
	at io.socket.client.IO.socket(IO.java:61)
	at io.socket.client.IO.socket(IO.java:42)
	at dev.icerock.moko.socket.Socket.<init>(Socket.kt:25)

在socket.io-client-java中查找到了类似的issues,看起来socket.io-client-java已经修复了这个问题。在io.socket.client.IO类中使用了URI而不是URL。

The following is the translation: I introduced this library in Android Studio using implementation("dev.icerock.moko:socket-io:0.4.0"), and then used the ws://... type address according to the sample code in the readme. , the following error occurred:

Caused by: java.lang.RuntimeException: java.net.MalformedURLException: unknown protocol: ws
	at io.socket.client.Url.parse(Url.java:52)
	at io.socket.client.IO.socket(IO.java:61)
	at io.socket.client.IO.socket(IO.java:42)
	at dev.icerock.moko.socket.Socket.<init>(Socket.kt:25)

Similar issues were found in socket.io-client-java. It seems that socket.io-client-java has Fixed this issue.URI is used instead of URL in io.socket.client.IO class.

XDao7 avatar Jan 10 '24 01:01 XDao7

Is there something wrong with my usage? I didn’t find any documentation on how to introduce it in Android Studio.

XDao7 avatar Jan 10 '24 02:01 XDao7

After testing, this problem can be solved by specifying the socket.io-client-java version

implementation("io.socket:socket.io-client:2.1.0") {
    exclude(group = "org.json", module = "json")
}

If do this, you can only receive four default messages: EVENT_CONNECT, EVENT_DISCONNECT, EVENT_CONNECT_ERROR, and EVENT_MESSAGE. It is uncertain whether there are other effects.

XDao7 avatar Jan 10 '24 08:01 XDao7