2017-08-06 103 views
0

XHR民调误差,同时试图连接到本地主机的机器,我有以下错误:EngineIOException:在安卓+ Socket.io

I/Connection error: Connectio errorio.socket.engineio.client.EngineIOException: xhr poll error 

我的代码:

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 

import org.json.JSONException; 
import org.json.JSONObject; 

import io.socket.client.IO; 
import io.socket.client.Manager; 
import io.socket.client.Socket; 
import io.socket.emitter.Emitter; 
import io.socket.engineio.client.Transport; 

public class LoiginActivity extends AppCompatActivity { 
    private Socket socket; 
    { 
     try { 
      socket = IO.socket("http://localhost:3000"); 

     } catch (URISyntaxException e) { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_loigin); 

     socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { 
      @Override 
      public void call(Object... args) { 

       Log.i(TAG,"connected"); 
      } 
     }); 
     socket.on(Socket.EVENT_CONNECT_ERROR, new Emitter.Listener() { 
      @Override 
      public void call(Object... args) { 
       Log.i(TAG, "Connectin error" + args[0]); 
      } 
     }); 

     socket.connect(); 


    } 
} 

互联网任何权限的设置。 Using Socket.IO on android Always Returns XHR Poll Error没有帮我

+0

似乎有人有这个问题[这里](https://stackoverflow.com/questions/37093221/using-socket-io-on-android-always-returns-xhr-poll-error) –

回答

0

如果有人正在经历这个。

try { 
     socket = IO.socket("http://localhost:3000"); 

    } catch (URISyntaxException e) { 
     e.printStackTrace(); 
    } 

OP正试图连接到本地主机。在这种情况下,localhost指的是手机本身,可能socket.io服务器不在手机中。

要解决此问题,请使用机器(即服务socket.io)本地网络IP地址更改“http://localhost”。