【发布时间】: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,这给了我们一个命名空间错误。该错误现在已修复。无论如何,感谢您帮助我们:-)
-
您至少可以编辑您的问题以显示导致问题的代码部分。然后,您可以为您的问题提供自己的答案以正确关闭此问题。