socket.io-android-chat
socket.io-android-chat copied to clipboard
Message can send but not receive
I am working on chat app using this library.
its working fine with two browsers but when i connect one browser and one android device. that time, i can send message from android to browser and browser also receive it. but i can't receive message from browser to android. i checked all the events and all are correct. but still not working.below is my code for that.
fun initializeSocket() {
try {
val application = application as Application
mSocket = application.getSocket()
mSocket?.on(Socket.EVENT_CONNECT, onConnect)
mSocket?.on(Socket.EVENT_DISCONNECT, onDisconnect)
mSocket?.on(Socket.EVENT_CONNECT_ERROR, onConnectError)
mSocket?.on(Socket.EVENT_CONNECT_TIMEOUT, onConnectError)
mSocket?.on(Constant.KEY_SOCKET_JOIN_ROOM, onJoinRoom)
mSocket?.on(Constant.KEY_SOCKET_REC_MSG, onReceivemsg)
mSocket?.on(Constant.KEY_SOCKET_READ_MSG, onReadmsg)
mSocket?.connect()
} catch (e: NullPointerException) {
e.printStackTrace()
} catch (e: Exception) {
e.printStackTrace()
}
}
private val onConnect = object : Emitter.Listener {
override fun call(vararg args: Any) {
runOnUiThread(Runnable {
Log.e("FAQ", "Connected")
if (isConnected == false) {
joinRoom()
isConnected = true
}
})
}
}
private val onDisconnect = object : Emitter.Listener {
override fun call(vararg args: Any) {
runOnUiThread(Runnable {
Log.e("FAQ", "Disconnected")
isConnected = false
})
}
}
private val onConnectError = object : Emitter.Listener {
override fun call(vararg args: Any) {
runOnUiThread(Runnable {
Log.e("FAQ", "Error connecting: ")
isConnected = false
})
}
}
private val onJoinRoom = object : Emitter.Listener {
override fun call(vararg args: Any) {
try {
val data = args[0] as JSONObject
Log.e("Join Room res", data.toString())
} catch (e: JSONException) {
e.printStackTrace()
}
}
}
private val onReceivemsg = object : Emitter.Listener {
override fun call(vararg args: Any) {
Log.e("Receive Msg res", "OnReceive")
runOnUiThread(Runnable {
try {
val data = args[0] as JSONObject
Log.e("Receive Msg res", data.toString())
} catch (e: JSONException) {
e.printStackTrace()
}
})
}
}
override fun onDestroy() {
super.onDestroy()
mSocket?.disconnect()
mSocket?.off(Socket.EVENT_CONNECT, onConnect)
mSocket?.off(Socket.EVENT_DISCONNECT, onDisconnect)
mSocket?.off(Socket.EVENT_CONNECT_ERROR, onConnectError)
mSocket?.off(Socket.EVENT_CONNECT_TIMEOUT, onConnectError)
mSocket?.off(Constant.KEY_SOCKET_JOIN_ROOM, onJoinRoom)
mSocket?.off(Constant.KEY_SOCKET_REC_MSG, onReceivemsg)
mSocket?.off(Constant.KEY_SOCKET_READ_MSG, onReadmsg)
}
I have the same issue. I could connect to server, could emit data, but can't handle server events on Android. Socket io and all callbacks are setup properly. Any help here?
@olmur i solved my issue with removing joinRoom from connect listener to initializeSocket method.
@olmur Same problem !!! I moved to another lib: https://github.com/socketio/socket.io-client-java