本篇依旧是接着上一篇继续扩展,还没看过之前博客的小伙伴,这里附上前几篇地址
终于是最后一篇啦,有点激动\ ( ≧▽≦ ) /啦啦啦,
服务端主动通知
热身完毕,我们先回顾下第一篇中讲到的服务端主动通知的流程
-
根据notify中事件类型找到对应的处理类,处理对应逻辑.
-
然后用eventbus通知对应的ui界面更新.
-
如果需要ack,发送ack请求.
在回顾下第二篇中服务端主动通知协议的格式
{
"resp_event": 20,
"action": "",
"seq_id": 11111111,
"resp": {
}
}
}
我们根据resp_event为20判断这次响应是服务端主动通知,然后通过action找到对应处理类,然后把resp中数据解析成对应的bean传入对应处理类执行对应业务逻辑.
show code
public class WsManager {
....跟之前相同代码省略.....
class WsListener extends WebSocketAdapter {
@Override
public void onTextMessage(WebSocket websocket, String text) throws Exception {
super.onTextMessage(websocket, text);
Logger.t(TAG).d("receiverMsg:%s", text);
Response response = Codec.decoder(text);//解析出第一层bean
if (response.getRespEvent() == 10) {
//响应
CallbackWrapper wrapper = callbacks.remove(
Long.parseLong(response.getSeqId()));//找到对应callback
if (wrapper == null) {
Logger.t