ios開發(fā)集成融云SDK心得

融云IM簡介

融云的定位是只專注即時通訊的消息發(fā)送功能纵柿,融云服務器不會維護用戶的好友關系及群組關系梦湘,這就需要集成的業(yè)務系統(tǒng)來管理用戶的好友關系與群關系等贱枣。 通過融云魄藕,只需要知道目標用戶的targetId就可以向目標用戶發(fā)送消息典徊。

如何連接融云服務器 杭煎?

連接融云服務器,需要向融云服務器傳遞將要連接服務器的用戶唯一標識宫峦,融云會根據(jù)傳遞的userid(唯一標識)來返回訪問融云服務器的令牌token. 關于userid的選取岔帽,可以使用業(yè)務系統(tǒng)的userid(建議),或者單獨建立一套唯一id的體系給融云服務器导绷。格式不限犀勒,可以為數(shù)字,GUID妥曲,或任意的字符串(漢字除外)

融云會保存哪些信息贾费?

對于用戶,融云會去保存用戶的唯一標識userid,昵稱name, 頭像portraitUri 的信息檐盟,這些信息被封裝到RCUserInfo 類中褂萧。如果想要知道某個用戶的信息也可以通過唯一標識userid向融云服務器來獲取。

融云還會幫助我們管理群組中的成員列表葵萎。融云不關心你建了幾個群导犹,但卻需要管理每個群下的成員,因為當在群中發(fā)送消息時羡忘,融云需要知道向哪些用戶推送群消息谎痢,從這點上就可以看出來。業(yè)務系統(tǒng)也需要管理群及群成員卷雕,當用戶進群與退群時节猿,業(yè)務系統(tǒng)需要與融云保持同步 (進群,退群融云都有接口服務提供)

聊天消息漫雕,消息的發(fā)送都需要經(jīng)過融云服務器滨嘱,所以聊天消息融云是會存儲的,但消息的保存時限會有免費用戶與付費用戶的不同浸间。

與業(yè)務系統(tǒng)的集成

首先需要到融云的官網(wǎng)創(chuàng)建一個自己的應用太雨,成功后會拿到AppKey。在AppDelegate didFinishLaunchingWithOptions:方法中做融云的初始化操作

融云SDK初始化

建議在用戶登錄后使用業(yè)務系統(tǒng)的userid(唯一標識)去獲取令牌token,并使用此token嘗試連接融云服務器魁蒜。在用戶退出時囊扳,斷開與融云服務器的連接煤墙。 如果應用有持久保存用戶登錄的特性,那么在首次獲取到令牌token后宪拥,也需要持久存儲。當應用重啟后需要根據(jù)存儲的令牌token做重連操作铣减。

在拿到令牌token去建立與融云服務器的連接時她君,可能會因token過期,或token 不正確導致連接失敗的情況葫哗。這里可以根據(jù)不同策略做不同處理缔刹,比如當失敗后重新嘗試獲取token并連接或干脆提示用戶登錄失效,請重新登錄劣针。

會話列表如何自定義校镐?

融云提供了兩套framework IMKit, IMLib. IMKit中融云封裝了會話,聊天等UI界面捺典。 使用IMKit可以很方便的將融云集成進來鸟廓。其中主要包含如下兩個主要的控制器:

RCConversationListViewController 會話列表控制器

RCConversationViewController 聊天窗口

在集成時,我們可以直接繼承RCConversationListViewController 來實現(xiàn)會話列表襟己,如果默認的會話列表展示無法滿足你的需要引谜,你也可以自定義cell的展示。但需要通過修改會話模型RCConversationModel的conversationType類型來告訴sdk 調(diào)用自定義cell的回調(diào)方法擎浴。

修改會話類型為自定義會話

只有當RCConversationModel的conversationModelType 值為 RC_CONVERSATION_MODEL_TYPE_CUSTOMIZATION時自定義cell的回調(diào)方法才會被執(zhí)行

實現(xiàn)返回自定義cell的回調(diào)方法

會話列表中的用戶頭像员咽,群組縮略圖如何獲取 ??

集成后贮预,在發(fā)消息時贝室,會碰到用戶頭像或群組圖無法加載的情況。這時就需要檢查在初始時是否指定了userInfoDataSource, groupDataSource的代理仿吞。這兩個代理方法中有相關的返回用戶信息滑频,群組信息的回調(diào)方法,只需要在這個回調(diào)方法中返回用戶信息茫藏,群組信息就可以解決這個問題误趴。

設置用戶信息源和群組信息源

可以看到,我把獲取用戶信息和群組信息源的代理都指向了一個名為RCDataManager的單例類中务傲,在這個類里實現(xiàn)了返回用戶信息與群組信息的方法

根據(jù)userId獲取用戶信息

如上是獲取用戶信息的回調(diào)方法凉当,首先判斷回調(diào)傳回的userid是否是當前登錄用戶自己。如果是自己售葡,從業(yè)務系統(tǒng)中將用戶id, 昵稱看杭,頭像等信息構(gòu)造出來RCUserInfo對象,并告訴融云當前用戶的信息

[RCIM sharedRCIM].currentUserInfo = myselfInfo;

如果用戶不是自己挟伙,對于群聊用戶楼雹,用戶與用戶之間沒有朋友關系,如果要獲取用戶的信息,就只能是通過融云的后端接口贮缅,根據(jù)userid唯一標識來獲取了榨咐。

補上連接融云時的代碼

通過令牌token連接融云服務器

在連接融云成功后 ,同步獲取一下群組的列表信息谴供,并緩存块茁。群組列表中存儲的都是RCGroup對象。緩存群組信息桂肌,便于在獲取某個群組信息時使用数焊。

根據(jù)groupId獲取群信息

通過實現(xiàn)該代理方法,融云會在適當?shù)臅r機調(diào)用此方法返回群組的信息

如何在用戶信息變化時崎场,更新用戶信息(頭像佩耳,名稱)?

當用戶更新了業(yè)務系統(tǒng)中的頭像及名稱后如何同步會話列表及聊天窗口用戶的信息呢谭跨?sdk為我們提供了一個方法就可以解決

更新當前用戶頭像

群聊@用戶時干厚,如何調(diào)出群成員列表 ?

在群聊時饺蚊,通常會針對其中的某個用戶發(fā)送一條消息萍诱,這時就用到了@某個用戶的功能。融云sdk提供了協(xié)議方法來獲取某個群組中所有的成員污呼,并通過屬性開關的方式來控制是否支持@功能裕坊,在融云初始化進行全局設置。

開啟@功能并指定代理訂閱者

當然我們還需要實現(xiàn)RCIMGroupMemberDataSource中的一個協(xié)議方法燕酷,用于返回所有的群成員籍凝,如下:

實現(xiàn)獲取群組成員的回調(diào)方法

未完待續(xù).....

轉(zhuǎn)載自:http://www.reibang.com/p/fdf5cc5f365e

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市苗缩,隨后出現(xiàn)的幾起案子饵蒂,更是在濱河造成了極大的恐慌,老刑警劉巖酱讶,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件退盯,死亡現(xiàn)場離奇詭異,居然都是意外死亡泻肯,警方通過查閱死者的電腦和手機渊迁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來灶挟,“玉大人琉朽,你說我怎么就攤上這事≈上常” “怎么了箱叁?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵墅垮,是天一觀的道長。 經(jīng)常有香客問我耕漱,道長算色,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任螟够,我火速辦了婚禮剃允,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘齐鲤。我一直安慰自己,他們只是感情好椒楣,可當我...
    茶點故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布给郊。 她就那樣靜靜地躺著,像睡著了一般捧灰。 火紅的嫁衣襯著肌膚如雪淆九。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天毛俏,我揣著相機與錄音炭庙,去河邊找鬼。 笑死煌寇,一個胖子當著我的面吹牛焕蹄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阀溶,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼腻脏,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了银锻?” 一聲冷哼從身側(cè)響起永品,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎击纬,沒想到半個月后鼎姐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡更振,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年炕桨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片殃饿。...
    茶點故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡谋作,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乎芳,到底是詐尸還是另有隱情遵蚜,我是刑警寧澤帖池,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站吭净,受9級特大地震影響睡汹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寂殉,卻給世界環(huán)境...
    茶點故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一囚巴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧友扰,春花似錦彤叉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至甚负,卻和暖如春柬焕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背梭域。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工斑举, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人病涨。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓富玷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親既穆。 傳聞我的和親對象是個殘疾皇子凌彬,可洞房花燭夜當晚...
    茶點故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 13,700評論 0 15
  • 前言 最近項目需要增加即時通訊功能,主要有2大需求 單聊 和 群聊循衰,花了點時間研究了一下铲敛,最近項目也集成完畢,在這...
    Leon_520閱讀 3,620評論 1 16
  • 一会钝、iOS 直播聊天室 Demo 說明 1伐蒋、源碼結(jié)構(gòu) 2、AppDelegate 在 AppDelegate 中初...
    ajiao焦閱讀 2,829評論 2 7
  • 福德 大智心靈空間2017-06-12 10:39:03 最大的福德是迁酸,它能照見我們的頑劣先鱼,讓我們知道我們的我執(zhí)如...
    大智行者閱讀 60評論 0 0
  • 文章首發(fā)微信公眾號:Judy姐姐啊 轉(zhuǎn)載請私信串远。 一 工作第一年我給自己定下的目標有兩個宏多,很微不足道但是卻不太容易...
    Judy小姐閱讀 11,632評論 73 163