在正常狀況下,傳送 SC_CALLBACK_REG 訊息的用戶端將接收到一則指示註冊成功或失敗的回覆。
然而,當某個用戶端註冊時,伺服器可能遇到錯誤狀況阻止其向該用戶端傳送 SC_REPLY 訊息。在此情況下,註冊在錯誤狀況發生之前可能已成功,或者已失敗,還可能尚未經過處理。
由於伺服器必須用做叢集中容錯移轉或高度可用的伺服器,因此此錯誤狀況並不意味著服務結束。事實上,該伺服器不久就可以開始將事件發送給新註冊的用戶端。
若要修正這些狀況,您的用戶端應該執行以下動作︰
在等待 SC_REPLY 訊息的註冊連線上強加一個應用程式層級的逾時後,用戶端需要重試註冊。
先開始為事件發送偵聽用戶端的回呼 IP 位址與通訊埠編號,然後再註冊事件回呼。該用戶端應該同時等待註冊確認訊息及事件發送。如果用戶端在接收到確認訊息之前就開始接收事件,則用戶端應該以靜音方式關閉註冊連接。