【问题标题】:Socket.IO server does not respond to emit from AndroidSocket.IO 服务器不响应来自 Android 的发射
【发布时间】:2017-07-06 05:22:58
【问题描述】:

我正在尝试通过 Android 应用程序连接我的 Node.js Socket.IO 服务器。控制台日志显示手机与服务器连接,但是当我尝试从 Android 发出消息时,服务器没有在日志控制台上提供任何输出。我已经通读了示例 Socket.IO Android 应用程序,但我无法找出问题所在......

下面是我的代码...

客户端 Android

mSocket.connect();

private void attemptSend() {

        JSONObject jsonObject1 = new JSONObject();
        try {
            jsonObject1 = new JSONObject();
            jsonObject1.put("message","This is a test");


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

        mSocket.emit("test",jsonObject1);
        Log.d("TAG", "Sent");
}

服务器 Node.js

io.on('connection', function(socket) {    
console.log('User Connected');

socket.on('test', function(data) {
console.log(data.message)
}

});

【问题讨论】:

  • 您是否看到来自服务器的“用户已连接”控制台消息? mSocket.connect(); 不需要服务器 URL 吗?
  • @jfriend00 是的,控制台显示“用户已连接”,这就是我知道 Android 设备与服务器连接的方式。服务器 URL 已提供给 Android 应用程序。 SO上显示的代码是整个代码的sn-p。这就是为什么你在这里看不到它:-)
  • 你能在mSocket.connect() 结束之前打电话给attemptSend 吗?
  • @jfriend00 嘿,所以错误实际上是在我们提供 mSocket 连接到的 URL 中。我们只需要将服务器 URL 提供给 mSocket。相反,我们提供的错误 URL 是这种格式 [serverURL]/socket.io/socket.io.js,这给了我们一个命名空间错误。该错误现在已修复。无论如何,感谢您帮助我们:-)
  • 您至少可以编辑您的问题以显示导致问题的代码部分。然后,您可以为您的问题提供自己的答案以正确关闭此问题。

标签: android node.js socket.io


【解决方案1】:

正如问题下的 cmets 所述,我在连接到服务器时使用的 URL 是错误的。修复 URL 后,该应用程序开始按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 2014-12-20
    • 2021-03-18
    • 2018-08-12
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    相关资源
    最近更新 更多