Просто пытаюсь получить очень простую связь через веб-сокет, работающую между приложением Android (Kotlin) и сервером NodeJS.Сервер NodeJS работает и соединяется с другими клиентами без каких-либо проблем.Очень простой код, который у меня есть, выглядит следующим образом:
val client = OkHttpClient.Builder()
.addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.HBASIC))
.build()
if (client != null) {
val scarlet = Scarlet.Builder()
.webSocketFactory(client.newWebSocketFactory("ws://192.168.2.33:3000"))
.addMessageAdapterFactory(MoshiMessageAdapter.Factory())
.addStreamAdapterFactory(RxJava2StreamAdapterFactory())
.build()
val myService = scarlet.create<MyService>()
myService.observeWebSocketEvent()
.subscribe { ev ->
Log.e("WEB SOCKET", ev)
}
}
Я получаю следующие ошибки:
D/OkHttp: --> GET http://192.168.2.33:3000/
D/OkHttp: Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: ctY0bb8jl/mbF6KYGbSJBw==
Sec-WebSocket-Version: 13
--> END GET
D/OkHttp: <-- HTTP FAILED: java.io.IOException: unexpected end of stream on http://192.168.2.33:3000/...
Просто интересно, есть ли что-то очевидное, что я делаю неправильно.Я использую следующие зависимости:
implementation 'com.github.tinder.scarlet:scarlet:0.1.7'
implementation 'com.github.tinder.scarlet:scarlet-message-adapter-moshi:0.1.7'
implementation 'com.github.tinder.scarlet:scarlet-stream-adapter-rxjava2:0.1.7'
implementation 'com.github.tinder.scarlet:scarlet-websocket-okhttp:0.1.7'
implementation 'com.squareup.okhttp3:logging-interceptor:3.14.0'