Android套接字不监听某些Socket.io发出

时间:2018-10-25 21:42:03

标签: javascript android socket.io

我正在使用Socket.io构建一个Android(和Web)聊天应用程序。 当我io.emit一些纯字符串数据时,Android会监听它,但是当我发出一些SOME_CONST_STRING + msg之类的经过修改的字符串时,Android不会监听。

server.js

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);
    });
    ...
}

MainActivity.java

@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)时,它可以工作。

有什么区别,是哪方面引起了问题?

1 个答案:

答案 0 :(得分:0)

尝试如下:

 let testString = CONNECTED_MESSAGE_WITH + name;
 let data = {"name": SYS,
             "message": testString,
             "color": SYS_COLOR};

调试并查看testString的值。