无法连接到Android上的本地socketIO Node.js服务器

时间:2019-06-16 15:10:31

标签: java android node.js socket.io

我已经制作了一个基本的nodejs服务器,当用户连接到该服务器时,该控制台会记录日志。我为此使用套接字io,因为我想制作一个聊天应用程序。在我的Android方面,即时通讯试图建立与此本地服务器的连接,但是当我尝试和socket.connected保持为false时,我从未收到控制台日志。尝试连接时也永远不会出错或出现错误

我尝试了一些互联网上的例子。我有1个示例工作删除了所有我不使用的东西,但它仍然有效。我将粘贴内容从该示例复制到我自己的项目中,但仍然无法正常工作。 这是我使用的example

这是我项目的代码 节点JS:

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

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
  console.log('a user connected');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

Android:

public class MainActivity extends Activity {
    private Socket socket;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ChatApplication app = (ChatApplication) getApplication();
        socket = app.getSocket();
        socket.connect();
    }
}

ChatApplication类:

public class ChatApplication extends Application {
    private Socket mSocket;
    {
        try {
            mSocket = IO.socket("http://192.168.0.109:3000");
        } catch (Exception e) {
            Log.e("Error", e.toString());
        }
    }

    public Socket getSocket() {
        return mSocket;
    }
}

1 个答案:

答案 0 :(得分:0)

Android Studio仿真器通常会阻止localhost连接,但我不确定这是否发生在您的情况下,但这确实发生在我身上。尝试在Android Studio中弹出Logcat,看看是否能找到表明localhost连接被拒绝的信息。

不确定是不是这样,但是您应该检查一下。