#sockets #kotlin #socket.io #handler #bridge
Вопрос:
Я строю мост сокетов в Kotlin, который отправляет данные из приложения для Android в Protopie Connect. Для этой цели я использую 'nkzawa:socket.io-client:0.6.0'
библиотеку Котлина. Все соединение работает, и я могу получать данные из приложения в PP Connect. Однако, как только я захочу отправить другие данные, мой получатель получит не новые, а старые данные, которые я ввел сначала, сразу после запуска приложения. Мой файл журнала показывает, что отправляются разные данные, но я не уверен, почему Protopie Connect их не получает. Не могли бы вы помочь мне с этим? Ниже вы можете найти код для моего SocketHandler (name_send происходит от inputText в моем приложении для Android).
fun SocketHandler(name_send : String)
{
val data = JSONObject()
val opts = IO.Options()
var socket = IO.socket("http://192.168.0.100:9981",opts)
data.put("messageId", "name")
data.put("value", name_send)
socket.on(Socket.EVENT_CONNECT){
//Log.d("Socket" ,"Connected")
socket.emit("ppMessage", data)
Log.d("data", data.toString())
Log.d("Socket", "Data Sent")
socket.disconnect()
}
socket.on(Socket.EVENT_DISCONNECT){
//Log.d("Socket" ,"Disconnected")
}
socket.on(Socket.EVENT_CONNECT_TIMEOUT){
Log.d("Socket", "Disconnected by timeout")
}
.on(Socket.EVENT_RECONNECT_FAILED){
Log.d("Socket" ,"Disconnected by retry_timeout")
}
.on(Socket.EVENT_ERROR){
Log.d("Socket", "Disconnected due to error")
}
.on(Socket.EVENT_RECONNECT_ATTEMPT){
Log.d("Socket", "Retry to connect.. Please make sure ProtoPie Connect is running on: http://192.168.0.100:9981")
}
socket.connect()
}