Я пытаюсь подключиться к websocket
, и тестовый сокет работает wss://echo.websocket.org
с моим кодом, но мой WebSocket не работает и дает сбой, но всякий раз, когда я пытаюсь использовать браузер, он работает.
Мой код для Android
// val request: Request = Request.Builder().url("wss://echo.websocket.org").build()
val request: Request = Request.Builder().url("wss://dev.xyz.co.uk/xyz").build()
val listener: EchoWebSocketListener = EchoWebSocketListener()
val ws: WebSocket = client.newWebSocket(request, listener)
client.dispatcher().executorService()
private inner class EchoWebSocketListener : WebSocketListener() {
private var NORMAL_CLOSURE_STATUS: Int = 1000
override fun onOpen(webSocket: WebSocket, response: Response) {
Log.d("onOpen-----", "Socket connected!!!!!")
webSocket.send("[5, \"driver106apikey\"]");
webSocket.close(NORMAL_CLOSURE_STATUS,"GoodBye!!")
}
override fun onMessage(webSocket: WebSocket, text: String) {
Log.d("onMessage-----", "Socket connected!!!!!")
Log.d("onMessage String-----", text)
output("Receiving------ "+ text)
}
override fun onMessage(webSocket: WebSocket, bytes: ByteString) {
Log.d("onMessage-----", "Socket onmessage!!!!!")
output("Receiving------ "+ bytes.toString())
}
override fun onClosing(webSocket: WebSocket, code: Int, reason: String) {
Log.d("onClosing-----", "Socket closing!!!!!")
webSocket.close(NORMAL_CLOSURE_STATUS, null)
output("Closing : "+ code + "/" + reason)
}
override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) {
Log.d("onFailure-----", "FAILURE")
Log.d("onFailure-----", t.message)
}
}
Вот как данные отправляются в Интернете
1. When you send data you send in this format :
function clickBtn() {
var data = {
event: 0,
data: {
lat: 123.2123,
lng: 22.5543,
status: 1
}
}
conn.publish('driver106apikey', data);
};
но попытка отправки с ключом-значением в Android не удалась.
val formBody: RequestBody = FormBody.Builder()
.add("driver106apikey", "{
"event": 0,
"data": {
"lat": 123.2123,
"lng": 22.5543,
"status": 1
}
}")
.build()
Erorr отображается в android
ОТКАЗ Ожидается ответ HTTP 101, но было «426 Запрошенные протоколы Sec-WebSocket не поддерживаются»
так данные отправляются через браузер.