【问题标题】:Communicating using socketio in Android - socket.emit error在 Android 中使用 socketio 进行通信 - socket.emit 错误
【发布时间】:2014-04-17 01:54:02
【问题描述】:

我正在尝试使用 android 作为客户端与我的 nodejs 应用程序通信。目前我使用https://github.com/Gottox/socket.io-java-client 存储库作为参考。尝试了 repo 的示例,但没有帮助。

NodeJS-SocketIO 代码:

socket.on('new user',function(data, callback){
    if (nicknames.indexOf(data)!=-1){
        callback(false);
    } else{
        callback(true);
        socket.nickname = data;
        nicknames.push(socket.nickname);
        updateNicknames();
    }
});

Android-Java 代码:

try {
                JSONObject json = new JSONObject();
                json.putOpt("data", "user1");
                socket.emit("new user", json);

            } catch (JSONException ex) {
                ex.printStackTrace();
    }

但是,上面的代码导致 TypeError: undefined。请帮忙。提前致谢!

【问题讨论】:

    标签: java android node.js sockets


    【解决方案1】:

    您可以取消JSON object。你可以这样做:

    socket.emit("new user", "user1");
    

    不太确定是否要发送 JSON,但如果您愿意,您是否尝试过:

    JSONArray array = new JSONArray();
    array.put("data", "user1");
    socket.emit("new user", array);
    

    很确定 JSON 需要有括号。

    【讨论】:

    • 还是一样。 NodeJS(服务器端)的回调(true)发生错误。
    • @JaswanthKumar 抱歉,我不太了解 NodeJS。恐怕我在服务器端帮不了你。
    • 如何为 socket 安装库?
    • @FranciscoCorralesMorales 您是否按照此处的说明进行操作? https://github.com/koush/AndroidAsync
    猜你喜欢
    • 2021-08-31
    • 2014-02-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2013-09-14
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多