環信IM(3.x)android版sdk集成小結

最近在寫社交類的app時用到了環信IM功能,所以在此記之 留下些許腳印。

​集成方面大家可以到其官網查看api集成步驟,此處我分享些在集成過程中的一些小總結

1,環信是爲廣大開發者提供一個即時通訊的雲平臺,你只需要在你的應用中集成其sdk就能快速實現即時通訊功能。

2,其通訊模式:client1-->環信服務器-->client2,客戶端1和客戶端2之間的信息傳遞溝通時同過環信後臺服務器來轉發實現的。模式是:當client1給client2發送信息時,client1先將信息發送到環信服務器(sdk在client1將信息/聊天記錄做一次存儲),環信服務器​接收到client1接收到的消息後自動備份一份到服務器裏(貌似是14天的時間),接着環信判斷client2是否在線,如果在線直接發送,不在線則等到client2登錄上線時再將消息推送給client2(client2本地也會做一次聊天記錄的存儲)

3,環信平臺不提供好友管理業務體系,環信也不想知道​。具體的用戶or好友業務邏輯操作還需要開發者自己寫服務器。只是環信在註冊用戶時需要一個環信id和一個密碼即可。若還要豐富用戶的其他信息開發者只需在自己的服務器端數據庫裏添加所需的字段即可。

4,環信爲我們的服務器端提供了一個rest api 用於服務器訪問環信的一個接口。通過在我們的服務器端集成環信的restapi即可實現多項功能,比如獲取好友,羣組的所有聊天記錄,對好友的​增加 刪除修改查詢等等(具體集成操作請查看其官方文檔或demo)

5,經過上面一個簡單的介紹後,我分享些在用戶登錄註冊以及接收好友的消息的過程中的經驗小結吧​:

環信的回調接口對象是處在調用者的[子線程中]可查看驗證,所以訪問UI控件時,必須要將操作UI的寫在主線程中(Handler/runOnUiThread)

(1),註冊時要運行在一個子線程中,因爲要聯網註冊

 //開始註冊【注意註冊操作要開啓一個線程,否則會註冊失敗】

       new Thread(new Runnable(){

          @Override

          public void run() {

              try{

                EMClient.getInstance().createAccount(singusrname,signuserpass);

                myHandler.sendEmptyMessage(1);

              } catch(HyphenateException e) {

                //註冊失敗會拋出HyphenateException

                e.printStackTrace();

                myHandler.sendEmptyMessage(2);

             }

          }

       }).start();

(2),用戶登錄  

 EMClient.getInstance().login(username,userpass, new EMCallBack();

 其登陸狀態用回調接口來表現,回調接口裏不能訪問UI控件,

 否則程序報錯(或接收不到消息),使用Handler,runOnUiThread(new Runnable());來解決

(3),在通過message設置消息的發送及接收狀態:message.setMessageStatusCallback(newEMCallBack(){});

   時回調接口裏訪問UI控件的方法必須在主線程中執行,否則4.0系列的android系統後續接收不到消息。

    but6.0的可以接收得到但沒有出現訪問UI控件時顯示的效果

 (4),異步的接口回調,對好友的業務操作在環信息後臺是(同增同刪)拉黑獨立 

               更多使用細節大家也可以移步其官網(http://www.easemob.com/)​     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章