2016-07-27 13 views
0

Ich entwickle eine einfache Anwendung, die nur zu einem Websocket-Server verbinden und eine einfache Textnachricht senden soll. Ich verwende nv-websocket-client als die Bibliothek für den Websocket. Ich kann anscheinend keine Verbindung zum Server herstellen. Ich habe wiresharsh verwendet, um festzustellen, dass keine Daten vom Gerät empfangen werden und keine Daten über einen der Ports ankommen, die ich verwendet habe, so dass ich mit der Tatsache zurückbleibe, dass etwas mit der Anwendung nicht stimmt.Android Websocket Verbindung Fehler

public class MainActivity extends AppCompatActivity{ 
    private static final String SERVER = "ws://192.168.2.177:80"; 
    private static final int TIMEOUT = 5000; 
    WebSocketFactory factory = new WebSocketFactory(); 
    WebSocket ws; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    public void connectWebsocket(View view) throws IOException{ 
     ws = factory.createSocket(SERVER); 
     try{ws.connect();} 
     catch (OpeningHandshakeException e){ 
      Log.d("OpeningHandshake", "Hello"); 
     } 
     catch (WebSocketException e1){ 
      Log.d("WebsocketException",e1.getError().toString()); 
     } 
    } 
    public void sendMessage(View view){ 
     ws.sendText("Sending Message..."); 
    } 
} 

Das ist meine Haupttätigkeit. Und hier ist mein Layout.

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:paddingBottom="@dimen/activity_vertical_margin" 
     android:paddingLeft="@dimen/activity_horizontal_margin" 
     android:paddingRight="@dimen/activity_horizontal_margin" 
     android:paddingTop="@dimen/activity_vertical_margin" 
     android:orientation="vertical" 
     tools:context="com.company.websockettest.MainActivity"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Socket Test" /> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Press to connect" 
      android:onClick="connectWebsocket"/> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Press To send" 
      android:onClick="sendMessage"/> 
    </LinearLayout> 

Ich bekomme eine SOCKET_CONNECT_ERROR. Und die Dokumentation für die Bibliothek scheint mir nicht viel über den Fehler selbst zu geben. Danke für jede Hilfe, die ich bekommen konnte.

+0

Entfernen Sie ws: // von SERVER. – greenapps

+0

Ich habe das versucht. Ich bekomme auch einen Fehler wie folgt. "Verursacht durch: java.lang.IllegalArgumentException: Unzulässiges Zeichen im Schema bei Index 0: 192.168.2.177:8000" –

Antwort

0
  1. Warum nicht ein WebSocketListener vor dem Aufruf connect() Methode registrieren?

  2. Wann wird Ihre connectWebsocket(View)-Methode aufgerufen? Stellen Sie sicher, dass connectWebsocket(View) vor ws.sendText("Sending Message...") aufgerufen wird. Stellen Sie mit anderen Worten sicher, dass eine WebSocket-Verbindung hergestellt wird, bevor Sie eine Nachricht an einen Server senden.