如何连接有效的websocket地址

时间:2018-01-14 15:42:37

标签: android websocket

我有Web套接字服务器地址列表。我将它存储在Array List.In Array List中只有一个有效的Web套接字地址。我需要连接该有效地址。我用于循环,但当有效地址在最后数组列表中的索引工作正常。但是当有效地址在最后一个索引之前它没有连接时如何执行此操作。

1 个答案:

答案 0 :(得分:0)

您可以使用OkHttp

在Android中连接WebSocket
public class MainActivity extends AppCompatActivity {
private Button start;
private TextView output;
private OkHttpClient client;

private final class Socket extends WebSocketListener {
private static final int NORMAL_CLOSURE_STATUS = 1000;

@Override
public void onOpen(WebSocket webSocket, Response response) {
  webSocket.send("Hello,  !");
  webSocket.send("your text ?");
  webSocket.send(ByteString.decodeHex("xyz"));
  webSocket.close(NORMAL_CLOSURE_STATUS, "bye!");
}

@Override
public void onMessage(WebSocket webSocket, String text) {
  output("Receiving : " + text);
}

@Override
public void onMessage(WebSocket webSocket, ByteString bytes) {
  output("Receiving bytes : " + bytes.hex());
}

@Override
public void onClosing(WebSocket webSocket, int code, String reason) {
  webSocket.close(NORMAL_CLOSURE_STATUS, null);
  output("Closing : " + code + " / " + reason);
}

@Override
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
  output("Error : " + t.getMessage());
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start = (Button) findViewById(R.id.start);
output = (TextView) findViewById(R.id.output);
client = new OkHttpClient();

start.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    start();
  }
});

}
 private void start() {
Request request = new  Request.Builder().url("ws://echo.websocket.org").build();
EchoWebSocketListener listener = new EchoWebSocketListener();
WebSocket ws = client.newWebSocket(request, listener);
client.dispatcher().executorService().shutdown();
 }
private void output(final String txt) {
runOnUiThread(new Runnable() {
  @Override
  public void run() {
    output.setText(output.getText().toString() + "\n\n" + txt);
  }
});
}
 }