在socket io客户端Android中打开握手响应是空的

我为Android实现nv-websocket-client 。 我在Log中遇到了一个错误。 如何成功连接?

com.neovisionaries.ws.client.WebSocketException: The status line of the opening handshake response is empty. 09-18 15:37:59.532 14225-14248/info.androidhive.firebasenotifications W/System.err: at com.neovisionaries.ws.client.HandshakeReader.readStatusLine(HandshakeReader.java:99) 09-18 15:37:59.532 14225-14248/info.androidhive.firebasenotifications W/System.err: at com.neovisionaries.ws.client.HandshakeReader.readHandshake(HandshakeReader.java:48) 09-18 15:37:59.532 14225-14248/info.androidhive.firebasenotifications W/System.err: at com.neovisionaries.ws.client.WebSocket.readHandshake(WebSocket.java:3244) 09-18 15:37:59.532 14225-14248/info.androidhive.firebasenotifications W/System.err: at com.neovisionaries.ws.client.WebSocket.shakeHands(WebSocket.java:3123) 09-18 15:37:59.532 14225-14248/info.androidhive.firebasenotifications W/System.err: at com.neovisionaries.ws.client.WebSocket.connect(WebSocket.java:2155) 

我的服务器端代码在Socket.js中。 有什么我失踪?

 var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); io.on('connection', function(socket){ console.log('client connected'); let jsonObject = { name: 'shihab', age : 28 }; io.emit('test-event', jsonObject); console.log(jsonObject); }); http.listen(3000, function(){ console.log('listenting on port 3000'); }); 

&而我正在执行这个android在我的活动。

  @Override protected void onResume() { super.onResume(); // CommonTasks.handleSocket(); initSocket(); } private void initSocket() { try { // Connect to the server and perform an opening handshake. // This method blocks until the opening handshake is finished. WebSocketFactory webSocketFactory = new WebSocketFactory(); ws = webSocketFactory.setConnectionTimeout(5000). createSocket(SOCKET_URL, 5000); ws.addListener(new WebSocketAdapter() { @Override public void onStateChanged(WebSocket websocket, WebSocketState newState) throws Exception { } @Override public void onConnected(WebSocket websocket, Map<String, List<String>> headers) throws Exception { Log.e("onConnected", "onConnected"); } @Override public void onConnectError(WebSocket websocket, WebSocketException cause) throws Exception { Log.e("onConnectError", "onConnectError"); } @Override public void onDisconnected(WebSocket websocket, WebSocketFrame serverCloseFrame, WebSocketFrame clientCloseFrame, boolean closedByServer) throws Exception { Log.e("onDisconnected", "onDisconnected"); } @Override public void onTextMessage(WebSocket websocket, String text) throws Exception { } @Override public void onError(WebSocket websocket, WebSocketException cause) throws Exception { } @Override public void onMessageError(WebSocket websocket, WebSocketException cause, List<WebSocketFrame> frames) throws Exception { } }); new SocketTask().execute(""); Log.e("called", "called"); } catch (IOException e) { } } class SocketTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { try { ws.connect(); } catch (OpeningHandshakeException e) { // Get the status code. int statusCode = e.getStatusLine().getStatusCode(); Log.e("OpeningHandshakeExcep", "Status code..." + statusCode); // If the status code is in the range of 300 to 399. if (300 <= statusCode && statusCode <= 399) { // Location header should hold the redirection URL. String location = e.getHeaders().get("Location").get(0); } } catch (HostnameUnverifiedException e) { e.printStackTrace(); // The certificate of the peer does not match the expected hostname. } catch (WebSocketException e) { e.printStackTrace(); // Failed to establish a WebSocket connection. } catch (Exception e6) { showLog(CommonConstraints.SOCKET_TAG, e6.getMessage()); Application.getInstance().trackException(e6); } return null; } @Override protected void onPostExecute(String result) { } } 

任何人使用这个? 可以帮我解决这个问题。