Android websocket连接失败

问题描述:

我正在开发一个简单的应用程序,它只是应该连接到websocket服务器并发送简单的文本消息。我使用nv-websocket-client作为websocket的库。我似乎无法连接到服务器。我使用wireshark来确定设备没有收到数据,也没有数据通过我使用过的任何端口进入,所以我留下了应用程序出现问题的事实。Android websocket连接失败

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..."); 
    } 
} 

这是我的主要活动。 这是我的布局。

<?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> 

我得到一个SOCKET_CONNECT_ERROR。而图书馆的文件似乎并没有给我太多的错误本身。感谢任何帮助,我可以得到。

+0

从服务器中删除ws://。 – greenapps

+0

我试过了。我也收到如下错误。 “引起:java.lang.IllegalArgumentException:索引0处的方案中的非法字符:192.168.2.177:8000” –

  1. 你为什么不一个WebSocketListener调用connect()方法之前注册?

  2. 什么时候调用connectWebsocket(View)方法?确保在ws.sendText("Sending Message...")之前调用connectWebsocket(View)。换句话说,确保在将消息发送到服务器之前建立WebSocket连接。