无法在安卓插座客户端和插座服务器之间建立连接



我正在尝试开发一个与Socket.IO聊天应用程序。我的服务器端是Node.js与express + socket。我的客户端是Android + Web。

我试着在我的客户端使用所有这些罐子:

  1. 'com.github.nkzawa:socket.io-client:0.3.0' -在socket中找到。android到socketio服务器的教程。
  2. 'io.socket:socket.io-client:0.6.1' -在nkzawa android聊天演示库中找到。
  3. '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版本…

笔记——

  1. 注意-我在Android中使用genymotion。
  2. 我有INTERNET_PERMISSION.
  3. 套接字。

这是我服务器端:

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地址连接。

相关内容

  • 没有找到相关文章