我正在尝试使用Socket.IO开发聊天应用程序。
我的服务器端是Node.js,安装了express + socket.io库,而客户端是Android + Web。
我尝试在客户端使用以下所有jar包:
1. 'com.github.nkzawa:socket.io-client:0.3.0' - 在socket.io网站上找到的教程,介绍如何将android连接到socketio服务器。 2. 'io.socket:socket.io-client:0.6.1' - 在nkzawa android chat demo存储库中找到的。 3. 'com.github.nkzawa:socket.io-client:0.6.0' - 过去的另一个版本,对我有效。
所有这些jar包都无法在android端工作。 在我的服务器端,我有最新版本的Socket.IO库-1.3.7,并尝试使用上述每个jar包进行连接。
我还尝试使用Socket.IO版本1.3.6,该版本在过去与列表中的第三个jar包一起使用可以正常工作。
我已经到了一无所知的地步,不知道下一步该怎么做,所以现在任何帮助都会对我有所帮助 :) 谢谢
编辑 - 问题已解决。显然,genymotion不需要10.0.3.2 IP地址连接到本地主机,所以我输入了我的PC IP地址,它起作用了。 顺便说一句,我没有考虑远程连接,这样我就可以消除问题,并知道问题是连接IP地址的问题。
我尝试在客户端使用以下所有jar包:
1. 'com.github.nkzawa:socket.io-client:0.3.0' - 在socket.io网站上找到的教程,介绍如何将android连接到socketio服务器。 2. 'io.socket:socket.io-client:0.6.1' - 在nkzawa android chat demo存储库中找到的。 3. 'com.github.nkzawa:socket.io-client:0.6.0' - 过去的另一个版本,对我有效。
所有这些jar包都无法在android端工作。 在我的服务器端,我有最新版本的Socket.IO库-1.3.7,并尝试使用上述每个jar包进行连接。
我还尝试使用Socket.IO版本1.3.6,该版本在过去与列表中的第三个jar包一起使用可以正常工作。
我尝试在Android端将url更改为http://10.0.2.2:3000,http://192.168.1.100:3000,分别在这些版本的jar包中进行测试...
注意事项 -
- 注意 - 我正在使用Android中的Genymotion。
- 我拥有INTERNET_PERMISSION。
- 服务器端的socket.io在Web浏览器(本地PC)上运行正常。
这是我的服务器端:
var app = require('express')();
var bodyParser = require('body-parser');
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:false}));
io.on('connection', function(socket){
console.log(socket.id);
console.log('Client connected');
});
http.listen(3000, function(){
console.log('listening on port 3000');
});
这是我的客户端:
private Socket mSocket;
{
try {
mSocket = IO.socket("http://10.0.3.2:3000");
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSocket.connect();
//setupActivity();
}
我已经到了一无所知的地步,不知道下一步该怎么做,所以现在任何帮助都会对我有所帮助 :) 谢谢
编辑 - 问题已解决。显然,genymotion不需要10.0.3.2 IP地址连接到本地主机,所以我输入了我的PC IP地址,它起作用了。 顺便说一句,我没有考虑远程连接,这样我就可以消除问题,并知道问题是连接IP地址的问题。