4

私は数日間、Androidでsocket.ioを使用して作業しています。現在、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","?");
                }


            }
        });
4

1 に答える 1

1

彼の他のライブラリ android-websockets でも同じ問題が見つかりました。私は彼の両方のプロジェクトでそれを修正するのを手伝いました。AndroidAsyncandroid-websocketsに加えられた変更を確認してください。android-websockets へのリンクは、問題を詳細に説明しています。マスター ブランチから最新の変更を取得して、再試行することをお勧めします。

于 2014-02-12T08:01:05.740 に答える