2017-08-06 6 views
0

は、私は次のエラーを持っている:EngineIOException:ローカルホストマシンに接続しようとしているときのAndroid + Socket.ioでXHRポーリング・エラー

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(); 


    } 
} 

インターネットpermissonsが設定されています。 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"を変更します。

関連する問題