概述
本文介绍如何使用okhttp实现websocket客户端
代码直接上
package com.ouya.exchange.index.util;
import java.util.concurrent.CountDownLatch;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.WebSocket;
import okhttp3.WebSocketListener;
import okio.ByteString;
public class WebsocketTest {
//只是为了阻塞主线程,防止退出,所以,真正使用的时候需要去除相关的这个东西
static CountDownLatch countDownLatch=new CountDownLatch(1);
public static void main(String[] args) throws InterruptedException {
OkHttpClient client = new OkHttpClient.Builder().retryOnConnectionFailure(true).build();
Request request = new Request.Builder().url("ws://10.17.145.23:9988").build();
client.dispatcher().cancelAll();//清理一次
client.newWebSocket(
request,
new WebSocketListener() {
@Override
public void onOpen(WebSocket webSocket, Response response) {
System.out.println("连接打开");
webSocket.send("发送了一条数据");
webSocket.send("{"FID":"003","SUB":"OFEX.BTCPERP.Depth"}");
}
@Override
public void onMessage(WebSocket webSocket, String text) {
System.out.println("接收到消息:" + text);
}
@Override
public void onMessage(WebSocket webSocket, ByteString bytes) {
System.out.println("这个可以不管,这个接收到是byte类型的");
}
@Override
public void onClosing(WebSocket webSocket, int code, String reason) {
System.out.println("连接关闭中");
}
@Override
public void onClosed(WebSocket webSocket, int code, String reason) {
System.out.println("连接关闭");
}
@Override
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
System.out.println("结束时,重连可以在这儿发起");
countDownLatch.countDown();
}
});
countDownLatch.await();
}
}
最后
以上就是冷艳小土豆为你收集整理的java okhttp实现websocket客户端的全部内容,希望文章能够帮你解决java okhttp实现websocket客户端所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复