[英]Android socket doesn't listen to some Socket.io emits
I am building an Android (& web) chat application using Socket.io. 我正在使用Socket.io构建一个Android(和Web)聊天应用程序。 When I io.emit
some pure string data, Android listens to it, but it doesn't when I emit some modified string like SOME_CONST_STRING + msg
. 当我io.emit
一些纯字符串数据时,Android会监听它,但是当我发出一些修改后的字符串(如SOME_CONST_STRING + msg
时则不会。
const SYS = '[알림]'; ... io.on('connection', (socket) => { socket.on('join', (name) => { names[socket.id] = name; let data = {"name": SYS, "message": CONNECTED_MESSAGE_WITH + name, "color": SYS_COLOR}; io.emit('chat message', data); var msg = data["message"]; io.emit('toast join', msg); }); ... }
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mSocket.on("toast join", new Emitter.Listener() {
@Override
public void call(final Object... args) {
runOnUiThread(new Runnable() {
@Override
public void run() {
String msg = (String) args[0];
Log.d(LOG_TAG, msg);
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
}
});
}
});
For toast join
, when I emit name
(instead of msg
) it works. 对于toast join
,当我发出name
(而不是msg
)时,它可以工作。
What's the difference and which side is causing the problem? 有什么区别,是哪方面引起了问题?
Try like below: 尝试如下:
let testString = CONNECTED_MESSAGE_WITH + name;
let data = {"name": SYS,
"message": testString,
"color": SYS_COLOR};
Debug and see the value of testString. 调试并查看testString的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.