Android之Mina頻繁傳送心跳包
最近使用 Mina框架實現長連線時,發現客戶端只發了一次心跳請求,伺服器卻不斷的迴圈收到該請求。先來看看心跳包配置:
執行:connection.getFilterChain().addLast("heartbeat", getHeartBeat());
通過斷點KeepAliveMessageFactoryImpl 類發現:
/** * 傳送心跳包請求 */ public class KeepAliveMessageFactoryImpl implements KeepAliveMessageFactory { private String heartRequest; private String heartResponse; public KeepAliveMessageFactoryImpl(String request, String response) { this.heartRequest = request; this.heartResponse = response; } /** * 檢查是否是請求的心跳包資訊 */ @Override public boolean isRequest(IoSession ioSession, Object o) { if (o.equals(heartRequest)) return true; return false; } /** * 用來判斷接收到的訊息是不是一個心跳回復包。 */ @Override public boolean isResponse(IoSession ioSession, Object o) { if (o.equals(heartResponse)) return true; return false; } /** * 獲取一個回覆的心跳包,並且傳送出去 */ @Override public Object getRequest(IoSession ioSession) { Utils.print("預設傳送心跳包--->" + heartRequest); return heartRequest; } /** * 獲取一個心跳回復包。 */ @Override public Object getResponse(IoSession ioSession, Object o) { Utils.print("預設心跳包響應--->" + heartResponse); return heartResponse; } }
程式只回撥一次 public Object getRequest(IoSession ioSession),然後不斷回撥
public Object getResponse(IoSession ioSession, Object o) 方法,伺服器報錯說收到很多次請求,一臉懵逼!
經過不懈努力除錯,最後發現:
心跳包的請求和響應內容不能相同!把responseStr改為不同的內容就好了。
相關文章
- crontab導致的頻繁傳送郵件的問題
- Erlang中頻繁傳送遠端訊息要注意的問題
- axios CancelToken 取消頻繁傳送請求的用法和原始碼解析iOS原始碼
- 心跳包
- Android之Mina框架學習Android框架
- Laravel SMS 簡訊傳送包Laravel
- android 傳送簡訊Android
- Android頻繁播放簡短音訊解決方案---SoundPoolAndroid音訊
- 【測試】echo傳送和接收TCP/UDP資料包|shell 傳送TCP/UDP資料包TCPUDP
- JAVA之長連線、短連線和心跳包Java
- Android 快速傳送郵件Android
- android簡訊傳送器Android
- Android Handler機制之Message的傳送與取出Android
- IT頻繁跳槽不是錯薦
- 每一天簡訊傳送次數每一分鐘傳送頻率傳送限制 hibernate資料庫框架資料庫框架
- java傳送接收組播(多播)資料包(UDP包)JavaUDP
- android: 傳送自定義廣播Android
- Android郵件傳送詳解Android
- Android中呼叫傳送郵件Android
- Android郵件傳送詳解 .Android
- TCP之RST傳送場景TCP
- 如何處理頻繁建立物件然後丟棄導致頻繁GC的情況物件GC
- NIO框架之MINA原始碼解析(二):mina核心引擎框架原始碼
- wireshark抓包curl傳送http2請求HTTP
- C++編寫自定義TCP包併傳送C++TCP
- oracle使用utl_http包傳送post請求OracleHTTP
- WPF頻繁更新UI卡頓問題UI
- 域賬戶頻繁鎖定排查
- PHP回顧之傳送郵件PHP
- ASP.NET之郵件傳送ASP.NET
- [Android]Okhttp心跳策略研究AndroidHTTP
- FP-Growth演算法之頻繁項集的挖掘(python)演算法Python
- Android Handler 訊息傳送效能優化Android優化
- NIO框架之MINA原始碼解析(四):粘包與斷包處理及編碼與解碼框架原始碼
- 利用ORACLE utl_stmp 包實現 mail傳送功能OracleAI
- REDIS主從頻繁切換事件排查Redis事件
- ORACLE中seq$表更新頻繁的分析Oracle
- js防止事件激發過於頻繁JS事件