3

我尝试使用 AndroidAsync 库。这是一个代码示例:

    AsyncHttpClient.getDefaultInstance()
            .websocket(url, null, new AsyncHttpClient.WebSocketConnectCallback() {
                @Override
                public void onCompleted(Exception ex, WebSocket webSocket) {
                    Log.i(LOG_TAG, "onCompleted");
                    if (ex != null) {
                        Log.e(LOG_TAG, "ex != null");
                        Log.e(LOG_TAG, ex.toString());
                        ex.printStackTrace();
                        return;
                    }

                    if (webSocket == null) {
                        Log.e(LOG_TAG, "1 webSocket == null");
                    } else {
                        Log.w(LOG_TAG, "1 webSocket != null");
                    }

                    webSocket.setStringCallback(new WebSocket.StringCallback() {
                        public void onStringAvailable(String s) {
                            Log.i(LOG_TAG, "setStringCallback");
                            System.out.println("I got a string: " + s);
                        }
                    });'

在我的情况下,ex == null 但 webSocket == null。nullpointerexception 在库代码中被捕获。但是我可以使用这个插座吗?即使回调中没有异常,它也是 null 看起来很奇怪。

4

2 回答 2

1

如果您要连接的服务器使用响应代码(HTTP 样式,即 405)拒绝连接。然后服务器在尝试连接期间基本上关闭了连接。

这不会引发异常,因为没有超时或网络问题。此外,由于服务器不允许建立连接,因此没有返回 websocket。

于 2015-07-08T12:23:37.657 回答
0

我遇到了同样的问题,其中一个解决了这个问题。如果你使用 XAMPP 启动 Apache 和 Tomcat。当您定义系统中的 Tomcat 版本时,将您的服务器项目导出到 war 文件中。仔细检查您为 websocket 选择的端口和 ip。

于 2016-03-02T20:41:57.563 回答