我正在使用Socket.io构建一个Android(和Web)聊天应用程序。
当我io.emit
一些纯字符串数据时,Android会监听它,但是当我发出一些SOME_CONST_STRING + msg
之类的经过修改的字符串时,Android不会监听。
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();
}
});
}
});
对于toast join
,当我发出name
(而不是msg
)时,它可以工作。
有什么区别,是哪方面引起了问题?
答案 0 :(得分:0)
尝试如下:
let testString = CONNECTED_MESSAGE_WITH + name;
let data = {"name": SYS,
"message": testString,
"color": SYS_COLOR};
调试并查看testString的值。