我正在尝试开发一个与Socket.IO聊天应用程序。我的服务器端是Node.js与express + socket。我的客户端是Android + Web。
我试着在我的客户端使用所有这些罐子:
- 'com.github.nkzawa:socket.io-client:0.3.0' -在socket中找到。android到socketio服务器的教程。
- 'io.socket:socket.io-client:0.6.1' -在nkzawa android聊天演示库中找到。
- 'com.github.nkzawa:socket.io-client:0.6.0' -过去为我工作的另一个版本。
所有这些jar都不能在android端工作。在我的服务器端,我有最新版本- 1.3.7的Socket。IO库,我尝试了上面的每个jar来连接它。
我也尝试使用Socket。IO版本1.3.6,我在过去的工作与列表上的第三个jar。
加上我试图改变url在android端为http://10.0.2.2:3000, http://192.168.1.100:3000在每个这些jar版本…
笔记——
- 注意-我在Android中使用genymotion。
- 我有INTERNET_PERMISSION.
- 套接字。
这是我服务器端:
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地址连接。
解决方案到这里,我几乎错过了它,因为它不在它应该在的地方。(图片来源:Ido Magor):
问题已解决。显然,genymotion不需要10.0.3.2 ip连接到本地主机,所以我输入了我的pc ip地址,它工作了。顺便说一下,我没有考虑远程连接,这样我就可以消除问题,知道问题是与ip地址连接。