为什么来自AndroidAsync的websocket始终为null

时间:2015-05-28 17:15:51

标签: android websocket

我正在Android中使用AndroidAsync库开发一个简单的WebSocket: http://www.koushikdutta.com/AndroidAsync

我的客户代码:

   private void conectar() {
    //String uri = "ws://192.167.101.142:1234";
    String uri = "http://192.167.101.166:1234";

    AsyncHttpClient asyncHttpClient = AsyncHttpClient.getDefaultInstance();
    //asyncHttpClient.websocket(new AsyncHttpGet(uri), "my-protocol", new AsyncHttpClient.WebSocketConnectCallback() {
    //asyncHttpClient.websocket(uri, "https", new AsyncHttpClient.WebSocketConnectCallback() {
    //asyncHttpClient.websocket(new AsyncHttpGet(uri), null, new AsyncHttpClient.WebSocketConnectCallback() {
    //asyncHttpClient.websocket(new AsyncHttpGet(uri), "SSL", new AsyncHttpClient.WebSocketConnectCallback() {
    asyncHttpClient.websocket(uri, null, new AsyncHttpClient.WebSocketConnectCallback() {
        @Override
        public void onCompleted(Exception ex, WebSocket webSocket) {

            Log.e(TAG, "webSocket is null");
            Log.e(TAG, "Metodo onCompleted");

            if (ex != null) {
                Log.e(TAG, ex.getMessage(), ex);
                return;
            }

            //Log.e(TAG, "webSocket.isOpen(): " + webSocket.isOpen());

            webSocket.send("a string");
            webSocket.send(new byte[10]);
            webSocket.setStringCallback(new WebSocket.StringCallback() {
                public void onStringAvailable(String s) {
                    System.out.println("I got a string: " + s);
                    Log.e(TAG, "I got a string: " + s);
                    //showToast("I got a string: " + s);
                }
            });
            webSocket.setDataCallback(new DataCallback() {
                @Override
                public void onDataAvailable(DataEmitter emitter, ByteBufferList byteBufferList) {
                    System.out.println("I got some bytes!");
                    Log.e(TAG, "I got some bytes!");
                    // note that this data has been read
                    byteBufferList.recycle();
                }
            });
        }
    });
}

我的服务器代码:

    private void conectar() {
    AsyncHttpServer server = new AsyncHttpServer();

    server.listen(PORTA);
    server.get("/", new HttpServerRequestCallback() {
        @Override
        public void onRequest(AsyncHttpServerRequest request, AsyncHttpServerResponse response) {
            response.send("Hello!!!");
        }
    });
    server.websocket("/", new AsyncHttpServer.WebSocketRequestCallback() {
        @Override
        public void onConnected(final WebSocket webSocket, AsyncHttpServerRequest request) {
            Log.e(TAG, "Metodo: onConnected");
            _sockets.add(webSocket);

            //Use this to clean up any references to your websocket
            webSocket.setClosedCallback(new CompletedCallback() {

                @Override
                public void onCompleted(Exception ex) {
                    Log.e(TAG, "Metodo onCompleted from webSocket object");

                    try {
                        if (ex != null)
                            Log.e("WebSocket", "Error");
                    } finally {
                        _sockets.remove(webSocket);
                    }
                }
            });

            webSocket.setStringCallback(new WebSocket.StringCallback() {

                @Override
                public void onStringAvailable(String s) {
                    Log.e(TAG, "Metodo onStringAvailable from webSocket object");

                    if ("Hello Server".equals(s))
                        webSocket.send("Welcome Client!");
                }
            });
        }
    });

任何人都知道为什么我不能连接我的服务器? 我已经在谷歌播放的另一个应用websocket测试中测试了服务器代码。 应用服务器没关系。 但是我无法从我的客户端应用程序连接?

0 个答案:

没有答案