當前位置:編程學習大全網 - 編程軟體 - SockJS實踐:即時通信關鍵點

SockJS實踐:即時通信關鍵點

(ps:這篇文章已經放了好久了,感覺好像也不會有太大的補充了,先發出來吧,後續有新內容再補充)

如果說之前的 Socket.IO打造基礎聊天室 讓我明白了聊天室的原理,知道了如何實現群聊(廣播)和私聊(單播)等,那麽對於 SockJS 的實踐讓我更加了解了websocket,因為 Sock.IO 是自己封裝的接口,而 SockJS 則使用了跟 websocket 幾乎相同的 API。

(ws自身有心跳,但是如果有壹些業務層面的需求,就需要自己實現心跳)

ws建立成功時便進行 心跳請求 (每隔壹段時間發送壹個 PING),同時初始化 超時重連 。如果在達到心跳規定次數後仍沒有返回 PONG,則判定心跳超時,前端主動關閉ws,觸發 ws重連

如果期間收到了 PONG,則重新初始化超時重連。

無論是前端主動關閉 ws,還是ws自動關閉,都會觸發 onclose 事件,可在其中進行重連。如果達到了重連次數或者後端返回了不可進行重連的標誌碼,則不進行重連。

實現思路:

url格式類似於: /resource/<server_number>/<session_id>/transport ;

每個 sockJS 都有 session_id ,可通過它來判斷是否同壹個用戶建立了2個ws,如多端登錄的情況下,可用於進行多端剔除。

sockjs-client 部分源碼:

  • 上一篇:Labview軟件開發工程師是做什麽的?
  • 下一篇:金立V5800手機如何刷機,軟件上哪找啊
  • copyright 2024編程學習大全網