AndroidAsync socket.io连接查询字符串参数

时间:2014-02-05 06:42:44

标签: android sockets socket.io androidasync-koush

我一直在使用socket.io和Android一段时间。截至目前,我正在使用Koush的AndroidAsync。当我尝试连接到我的本地socket.io服务器(http://192.168.2.1:3000)时一切正常,我可以发出命令并接收事件消息。但是当我尝试将它用于带有查询字符串参数(http://api.mysite.com:8000/socket.io/1?v=1&name=xxx&password=xxx)的实时服务器时,我无法连接。 是否有正确的方法将查询字符串参数传递给AndroidAsync socket.io?这是我的代码。

    Uri.Builder b = Uri.parse("http://api.mysite.com:8000/socket.io/1").buildUpon();
    b.appendQueryParameter("v", "1");
    b.appendQueryParameter("name", "xxx");
    b.appendQueryParameter("pass", "xxx");

    myUrl = b.build().toString();

    AsyncHttpClient.getDefaultInstance().getString(myUrl, new AsyncHttpClient.StringCallback() {

            @Override
            public void onCompleted(Exception arg0, AsyncHttpResponse arg1, String arg2) {
                // TODO Auto-generated method stub

            }

            @Override
            public void onConnect(AsyncHttpResponse response) {
                // TODO Auto-generated method stub
                super.onConnect(response);
                Log.d("tag","onConnect!");
            }

            @Override
            public void onProgress(AsyncHttpResponse response, int downloaded,
                    int total) {
                // TODO Auto-generated method stub
                super.onProgress(response, downloaded, total);
                Log.d("tag","Progress!");
            }


        });

        SocketIOClient.connect(AsyncHttpClient.getDefaultInstance(), myUrl, new ConnectCallback() {

            @Override
            public void onConnectCompleted(Exception arg0, SocketIOClient client) {
                // TODO Auto-generated method stub
                if (client.isConnected()) {
                    Log.d("tag","!");
                } else {
                    Log.d("tag","?");
                }


            }
        });

1 个答案:

答案 0 :(得分:1)

我在他的其他库android-websockets中发现了同样的问题。我帮他修了两个项目。查看对AndroidAsyncandroid-websockets所做的更改。 android-websockets的链接详细描述了这个问题。我建议你从主分支中提取最新的更改,然后再试一次。