思路分析
- 使用
OkHttpClient#newWebSocket
建立長連接寸莫;
- 監(jiān)聽連接成功事件(
WebSocketListener#onOpen
)凤跑;
- 連接成功后使用
WebSocket#send
向服務端發(fā)送數(shù)據(jù);
- 需要結束時使用
WebSocket#close
關閉長連接饱亮。
實現(xiàn)代碼
OkHttpClient client = new OkHttpClient.Builder().build();
Request request = new Request.Builder()
.url("ws://***")
.build();
client.newWebSocket(request, new WebSocketListener() {
@Override
public void onOpen(WebSocket webSocket, Response response) {
// 連接成功后向服務端發(fā)送數(shù)據(jù)(比如注冊渠道)
String json = "{***}"
webSocket.send(json);
}
@Override
public void onMessage(WebSocket webSocket, String text) {
// 接收到推送的文本數(shù)據(jù)
}
@Override
public void onMessage(WebSocket webSocket, ByteString bytes) {
// 接收到推送的二進制數(shù)據(jù)
}
@Override
public void onClosing(WebSocket webSocket, int code, String reason) {
// 推送正在關閉
}
@Override
public void onClosed(WebSocket webSocket, int code, String reason) {
// 推送已關閉
}
@Override
public void onFailure(WebSocket webSocket, Throwable t, Response response) {
// 推送連接失敗
}
});
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者