我已经制作了一个基本的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;
}
}
答案 0 :(得分:0)
Android Studio仿真器通常会阻止localhost连接,但我不确定这是否发生在您的情况下,但这确实发生在我身上。尝试在Android Studio中弹出Logcat
,看看是否能找到表明localhost连接被拒绝的信息。
不确定是不是这样,但是您应该检查一下。