2017-10-03 8 views
0

Ich habe socket.io Server in Nodejs, die ich von JavaScript-Client verbinden konnte, aber von Java/Android kann ich nicht verbinden! hier ist mein Code:socket.io-client java keine Verbindung zum Server

Knoten js:

var socket = require('socket.io')(); 
var users = { 
    desktop : {}, 
    android : {} 
} 
socket.on('connection',function(client){ 
    console.log(`new connection ! ${client.id}`); 
    client.on('intro',(user)=>{ 

      user.client = client ; 
      user.cid = client.id ; 
      users[user.type] = user ; 

      console.log('users '+users); 
    }) 
}); 
socket.listen(2731) 
console.log(`app running`); 

hier ist Java-Code:

import io.socket.client.IO; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.AppCompatButton; 
import android.view.View; 
import android.widget.Toast; 

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

import java.net.URISyntaxException; 

public class MainActivity extends AppCompatActivity { 
    io.socket.client.Socket socket ; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     try { 
      socket = IO.socket("http://192.168.1.103:2731"); 
      JSONObject intro = new JSONObject(); 
      intro.put("type","android"); 
      intro.put("id",7); 
      socket.emit("intro"); 

     } catch (URISyntaxException e) { 
      e.printStackTrace(); 
      Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_LONG).show(); 
     } catch (Exception e) { 
      Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_LONG).show(); 
     } 

     setContentView(R.layout.activity_main); 
    } 

} 

ich mit localhost getestet: 2731 auch Firewall ausgeschaltet wurde, aber wieder nicht anschließen. kein Fehler und keine Ausnahme erscheint

+0

Sind Sie ein Emulator oder eine reale Gerät verwenden? überprüfen Sie, dass Ihr Gerät mit dem gleichen Netzwerk wie der Server verbunden ist – ammcom

+0

@ammcom ja Netzwerk ist das gleiche und auch ich nur Java-Code in Eclipse mit localhost laufen: 2731 aber hat nicht funktioniert – Farhad

Antwort

1

Code wie folgt sein sollte:

socket = IO.socket("http://192.168.1.103:2731"); 
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { 

    @Override 
    public void call(Object... args) { 
     JSONObject intro = new JSONObject(); 
     intro.put("type","android"); 
     intro.put("id",7); 
     socket.emit("intro"); 
    } 
}; 
socket.connect(); 
+0

Danke !!! du hast mein Leben gerettet ! – Farhad

Verwandte Themen