環信伺服器簡單介紹

weixin_33978044發表於2018-01-25

通訊過程及聊天記錄儲存

通訊過程

客戶端通過環信伺服器進行通訊。

  • 線上狀態:客戶端A傳送訊息到環信伺服器,環信伺服器推送訊息到客戶端B。
  • 離線狀態:客戶端A傳送訊息到環信伺服器,環信伺服器檢測到客戶端B不線上,會新增到離線快取中,當客戶端B登入後伺服器會把離線訊息推送給客戶端B。

聊天記錄儲存

客戶端A傳送訊息到環信伺服器的同時,SDK 會儲存這條訊息到本地資料庫(SDK 內部建立資料庫,不允許直接操作),環信伺服器在推送訊息到客戶端B的同時也會在伺服器記錄下來(訊息歷史記錄免費儲存3天),客戶端B收到訊息後,SDK 會將這條訊息儲存到本地資料庫。
:客戶端並未提供去伺服器獲取聊天記錄的介面,所以,如果換了裝置或者清空了資料,聊天記錄都不會存在。如果有需求要從伺服器拉取聊天記錄,可以在自己伺服器處理。

實時訊息回撥

實時訊息回撥經常用在應用需要針對使用者傳送的訊息進行處理的場景。比如:

  • 針對客戶訊息的內容進行自動回覆
  • 在 APP 自己的服務端實時儲存聊天曆史

:如果您對聊天訊息沒有實時性需求,可以直接通過免費的聊天記錄拉取 REST API獲取聊天記錄,無需使用實時訊息回撥。環信支援 APP 把聊天記錄通過 REST 介面匯出。實時訊息回撥屬於增值服務,我暫時不會用到,所以不多介紹了。

名詞解釋

當您申請了 AppKey 後,會得到一個 xxxx#xxxx 格式的字串,這個就是您的 AppKey,下文中用到的:

  • org_name 對應 # 前面部分
  • app_name 對應 # 後面部分

環信 ID 規則

當 APP 和環信整合的時候,需要把 APP 系統內的已有使用者和新註冊的使用者和環信整合,為每個已有使用者建立一個環信的賬號(環信 ID),並且 APP 有新使用者註冊的時候,需要同步的在環信中註冊。
在註冊環信賬戶的時候,需要注意環信 ID 的規則:

  • 使用英文字母和(或)數字的組合
  • 不能使用中文
  • 不能使用 email 地址
  • 不能使用 UUID
  • 使用者ID的長度在230位元組以內
  • 中間不能有空格或者井號(#)等特殊字元
  • 允許的使用者名稱正則 “[a-zA-Z0-9_-.]*”(a~z大小寫字母/數字/下劃線/橫線/英文句號),其他都不允許 如果是大寫字母會自動轉成小寫
  • 不區分大小寫。系統忽略大小寫,認為 AA、Aa、aa、aA 都是一樣的。如果系統已經存在了環信 ID 為 AA 的使用者,再試圖使用 aa 作為環信 ID 註冊新使用者,系統返回使用者名稱重複,以此類推。但是請注意:環信 ID 在資料上的表現形式還是使用者最初註冊的形式,註冊時候使用的大寫就儲存大寫,是小寫就儲存小寫。即:使用 AA 註冊,環信儲存的 ID 就是 AA;使用 Aa 註冊,環信儲存的 ID 就是 Aa,以此類推。
  • 另:本文件中可能會交錯使用“環信 ID”和“環信使用者名稱”兩個術語,但是請注意,這裡兩個的意思是一樣的。

相關文章