Bug 保護色做得太真,導致找不到它 (示意圖/翻攝自Pixabay) |
使用 SQLConnection 連接 DataSnap 的開發者都知道這是一種長連接的作法。
但這個作法有個缺點,就是如果 Client 發生瞬斷情形,在獲取資料會觸發以下例外:
- EIdSocketError 10054 : Connection reset by peer.
- EOleException: Connection Closed Gracefully.
在網路上看到解決方式是:
設置心跳包,每分鐘進行連線一次。
這個方式可以確保連線不會被默默切斷,只是這方式卻不能避免網路異常所導致的斷線情形。
再加上異常補獲的方式就更好了。
以下便是我的範例解法:
連線異常也是連線SOP裡重要的一環,長連接系統的好壞,從這個細節就能知道了。
See also:
沒有留言:
張貼留言