【问题标题】:Can not connect between android device and node.js server无法在android设备和node.js服务器之间连接
【发布时间】:2023-03-05 04:51:01
【问题描述】:

所以在这里,我正在尝试使用 socket.io 将我的 android 连接到我的服务器 node.js,但在执行过程中,没有错误但连接尚未建立并返回 false

提前感谢您的帮助!

Socket.Java

package com.example.myprojectapplication.ObjectClass;

import com.github.nkzawa.socketio.client.IO;

import java.net.URISyntaxException;

public class Socket {

    private com.github.nkzawa.socketio.client.Socket mSocket;
    {
        try {
            mSocket = IO.socket("localhost:8081/");
        } catch (URISyntaxException e) {
            throw new RuntimeException(e);
        }
    }

    public com.github.nkzawa.socketio.client.Socket getSocket() {
        return mSocket;
    }
}

我的 MainActivity 的相关部分

com.example.myprojectapplication.ObjectClass.Socket app = new com.example.myprojectapplication.ObjectClass.Socket();
Socket mSocket = app.getSocket();
mSocket.connect();

Node.js 服务器

var mysql = require('mysql');
var app = require('express')();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

io.sockets.on('connection', function (socket) {

  socket.emit('message', 'Android Connected');
  console.log("Android Connected");

  socket.on('message', function(message){
    console.log("message received");
    socket.emit('message', 'message received');
  });

});

server.listen(8081)

【问题讨论】:

    标签: java android node.js android-studio socket.io


    【解决方案1】:

    在 Socket.Java 中,您使用 localhost:8081/ 而不是这个地址,您必须使用 node.js 服务器 IP 地址(本地 IP 地址)。要将您的应用程序与 node.js 服务器连接,您必须将您的计算机和应用程序运行设备保持在同一网络中。

    【讨论】:

    • 即使一切都是在本地模拟的?
    • 是的,因为对于 android 模拟器 localhost 意味着自己的地址,并且您想要指向在您的计算机上运行的服务器。
    【解决方案2】:

    另一个答案是正确的。但要注意的另一件事:如果您使用的是模拟器,那么您可以使用 10.0.2.2 来引用主机的 localhost。这对于开发非常有用,因为您不必在每次更改网络时都获取笔记本电脑的实际 IP 地址。

    请参阅:https://developer.android.com/studio/run/emulator-networking 了解更多信息

    【讨论】:

    • 谢谢伙计...这对我真的有用。我一直在使用我的 IP 地址而不是 10.0.2.2
    猜你喜欢
    • 2013-10-11
    • 2018-07-12
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多