1. 程式人生 > >即時通訊瑣碎知識點

即時通訊瑣碎知識點

即時通訊

前言

基本即時通訊功能(語音聊天,視訊通話)已經實現了,但是一些細節的地方還是需要處理,這篇文章就羅列一些細節點,待我一步步去完善。

知識點

如何保證伺服器與客戶端一直保持有效連線

  • 客戶端由於沒有網路,失去了長連線,伺服器如何知道這種情況而斷開連線?如何知道一個客戶端一直處於正常的連線狀態。
  • 上邊的問題我們需要通過心跳包的機制來保持有效連線。
  • 我們可以通過每間隔1分鐘或者多久,給伺服器傳送一個簡短的訊息(越簡潔越好,省流量),伺服器收到訊息後知道客戶端處於正常連線狀態,然後我們給客戶端3次重連的機會,如果3分鐘後(再次基礎上富餘5秒)客戶端還沒有心跳包給伺服器,伺服器則判斷客戶端由於一些原因失去了連線,可以直接斷開連線。

客戶端重連

  • 當網路環境切換造成的掉線,需要重新建立連線;
  • 由於伺服器原因而一直連線不上,需要按照科學的間隔時間建立重連,就是不要一直每間隔1分鐘重連一次,正常來說隨著重連次數的增多,間隔應該越來越長;

保持服務不死

  • 為了保持與伺服器的連線執行緒不死,最好建立Service服務,參考
  • 為了保持Service不死,參考

給離線使用者發訊息

  • 判斷使用者是否線上,不線上的話先將訊息儲存到資料庫。當用戶上線時,先去資料庫查詢看是否有自己的訊息。
  • 上邊的方法存在一點問題,就是當用戶退出,伺服器狀態還沒有改變的時候,給使用者發訊息,資料是會丟失的,改進方法就是無論使用者是否線上都先將訊息儲存到資料庫,當用戶收到訊息後,給伺服器一個收到訊息的回執,伺服器收到回執後可以把資料庫的訊息刪除。

應該選用何種技術

  • 筆者使用的是socket.io+webrtc。用socket.io實現長連線,webrtc在此基礎上實現語音視訊通話。
  • 網上有用socket+mina+xmpp+androidpn來實現即時通訊,由於xmpp採用xml協議,佔用流量比較大,不建議在移動端使用。
  • 基於MQTT協議開發的也很火爆,有興趣的可以研究一下。參考
  • 很有參考價值的一篇文章可以看一看,參考

相關推薦

即時通訊瑣碎知識點

即時通訊前言基本即時通訊功能(語音聊天,視訊通話)已經實現了,但是一些細節的地方還是需要處理,這篇文章就羅列一些細節點,待我一步步去完善。知識點如何保證伺服器與客戶端一直保持有效連線客戶端由於沒有網路,失去了長連線,伺服器如何知道這種情況而斷開連線?如何知道一個客戶端一直處於

java SSM 框架 多數據源 代碼生成器 websocket即時通訊 shiro redis 後臺框架源碼

sql編輯器 quartz 自定義表單 SSM springmvc 獲取【下載地址】 QQ: 313596790 官網 http://www.fhadmin.org/ A 調用攝像頭拍照,自定義裁剪編輯頭像,頭像圖片色度調節 B 集成代碼生成器 [正反雙向](單表、主表、明細

java SSM 框架 代碼生成器 websocket 即時通訊 shiro redis 多數據源 後臺框架源碼

idt 下載到本地 exp 綁定 鏈接 數據庫連接池 展示 地圖工具 重排序 A 調用攝像頭拍照,自定義裁剪編輯頭像,頭像圖片色度調節B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,快速開發利器)+快速表單構建器 freemaker模版技術 ,0個代碼不用寫,

java SSM框架 多數據源 代碼生成器 websocket即時通訊 shiro redis 後臺框架源碼

sql編輯器 quartz 自定義表單 springmvc ssm 獲取【下載地址】 QQ: 313596790官網 http://www.fhadmin.org/A 調用攝像頭拍照,自定義裁剪編輯頭像,頭像圖片色度調節B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,快速

NetCore WebSocket 即時通訊示例

local doc acc code win ref 簡易 rem sync 1.新建Netcore Web項目 2.創建簡易通訊協議 public class MsgTemplate

IOS集成融雲SDK即時通訊

ios 融雲 即時通訊 融雲即時通訊雲 雲服務 融雲sdk集成 相信大家在項目中會用到即時通訊功能,自己去寫的話會需要前後臺合作,會大大加大開發的周期,所以考慮使用第三方的即時通訊平臺,比如現在有融雲,環信....等等等!樓主在項目開發過程中使用到過環信和融雲,今天就為大家寫下IOS端

MQTT是IBM開發的一個即時通訊協議,構建於TCP/IP協議上,是物聯網IoT的訂閱協議,借助消息推送功能,可以更好地實現遠程控制

集合 cap 消息處理 簡易 遠程控制 mes ogr 設計思想 成本 最近一直做物聯網方面的開發,以下內容關於使用MQTT過程中遇到問題的記錄以及需要掌握的機制原理,主要講解理論。 背景 MQTT是IBM開發的一個即時通訊協議。MQTT構建於TCP/IP協議上

java代碼編輯器 pdf文件預覽 主流SSM 代碼生成器 shrio redis websocket即時通訊

java微信自定義菜單 快遞接口 SSM redis shiro 官網 http://www.fhadmin.org/ A代碼編輯器,在線模版編輯,仿開發工具編輯器,pdf在線預覽,文件轉換編碼 B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,快速開發利器)+快速表單

java SSM框架 代碼生成器 websocket即時通訊 shiro redis 後臺框架源碼

springmvc多數據源 ssm redis java 整合 官網 http://www.fhadmin.org/A代碼編輯器,在線模版編輯,仿開發工具編輯器,pdf在線預覽,文件轉換編碼B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,快速開發利器)+快速表單構建器 fre

IM即時通訊實現原理

客戶端使用 在線狀態 ddos 開發 mapping 在線網友 傳真 ddl 說明 即時通訊(Instant Messenger,簡稱IM)軟件多是基於TCP/IP和UDP進行通訊的,TCP/IP和UDP都是建立在更低層的IP協議上的兩種通訊傳輸協議。前 者是以數據流的形式

基於node.js的即時通訊

open 註意 ges size lose 雙屏 ner 事件驅動 發現 最近都在學習HTML5,做canvas遊戲之類的,發現HTML5中除了canvas這個強大的工具外,還有WebSocket也很值得註意。可以用來做雙屏互動遊戲,何為雙屏互動遊戲?就是通過移動端設備來控

java SSM框架 websocket即時通訊 代碼生成器 shiro redis 後臺框架源碼

pdh 音頻 orf 元素 數據庫連接池 extra 數據庫連接 宋體 jpg 1. 權限管理:點開二級菜單進入三級菜單顯示 角色(基礎權限)和按鈕權限 角色(基礎權限): 分角色組和角色,獨立分配菜單權限和增刪改查權限。 按鈕權限: 給角色分配按鈕

struts2的瑣碎知識點

default del 方法名 ret action 動作 div println apach servlet:void init(ServletConfig cfg):// 讀取servlet的配置參數void service(ServletRequest request

java SSM框架 多數據源 代碼生成器 websocket即時通訊 shiro redis 後臺

及時聊天 郵件服務 簡單 sql 字母 wid 構建 漢字 格式 A代碼編輯器,在線模版編輯,仿開發工具編輯器,pdf在線預覽,文件轉換編碼B 集成代碼生成器 [正反雙向](單表、主表、明細表、樹形表,快速開發利器)+快速表單構建器freemaker模版技術 ,0個代碼不用

在線管理、即時通訊發送通知

即時通訊 在線管理 同步刷新多個客戶端①需要的jar包java_websocket.jar②在線聊天服務池類(在線用戶管理)package com.kentra.plugin.websocketOnline; import java.util.ArrayList; import java.util.Coll

上帝之眼APP——實時定位監控、即時通訊

界面 sdk clas inf 運動 登陸 pos post 兒童 項目地址 https://github.com/guoyaohua/GodsEYE 開發環境 Android studio 2.3.1 極光推送IM SDK 百度鷹眼SDK 背景介紹 定位監控系統,不僅僅是

瑣碎知識點(2)

頁面 查詢 電腦 chrome瀏覽器 webkit ie瀏覽器 工具 做的 -- 1、CSS3中-MS-,-MOZ-,-WEBKIT-,-O-瀏覽器私有前綴詳解 (1)-moz-:代表FireFox瀏覽器私有屬性 (2)-ms-:代表IE瀏覽器私有屬性 (3)-webkit

瑣碎知識點(1)

因此 cli 軟件 是否 inux 喜歡 font sta 如果 1、看懂鏈接 單頁面應用鏈接:https://reactjs.org/docs/react-api.html#createelement (鏈接中有#號) 2、免費的圖片分享網站imgur 網站地址:htt

PHP + Redis 訂閱/發布 實現即時通訊功能

PHP Redis 訂閱/發布 即時通訊 最近比較忙,沒時間更新博客,先暫時記下,待後續補充 Redis Sub/Pub 訂閱/發布 待編輯 PHP + Redis 訂閱/發布 實現即時通訊 待編輯 PHP + Redis 訂閱/發布 實現即時通訊功能

即時通訊開發

界面 pan sim sat edit log ssi 設置 ted 第一步:設置基本配置AppID:app_idAppSecret:app_secret用戶ID:user_id設備ID:device_id第二步:創建WebSokect服務,取得session_id(Ses