RongCLoud即時(shí)通訊學(xué)習(xí)筆記

1孙乖、前期準(zhǔn)備:需要在融云注冊(cè)app戒幔,獲取appkey在AppDelegate中進(jìn)行注冊(cè)吠谢。環(huán)境分為開發(fā)環(huán)境和生產(chǎn)環(huán)境,調(diào)試可以用開發(fā)環(huán)境诗茎,app上線需要注冊(cè)生產(chǎn)環(huán)境工坊。

2、獲取用戶token(用來用戶身份認(rèn)證的敢订,通過用戶的token王污,獲取用戶的信息)的過程:

如果沒有服務(wù)器,融云提供了調(diào)試的接口楚午,點(diǎn)擊提交即可獲取token來進(jìn)行測(cè)試:

3昭齐、獲取到token之后就可以調(diào)用-connectWithToken:success:error:tokenIncorrect:? 方法與融云服務(wù)器建立連接,這個(gè)方法在程序運(yùn)行過程中只需要調(diào)用一次矾柜,在網(wǎng)絡(luò)斷開或者前后臺(tái)切換的情況下阱驾,會(huì)自動(dòng)重連,除非是手動(dòng)斷開連接怪蔑,是需要再次調(diào)用該方法進(jìn)行重連里覆。

需要注意兩點(diǎn):

? ? ? 一、該方法有一個(gè)成功的回調(diào)和一個(gè)錯(cuò)誤的回調(diào)缆瓣,在錯(cuò)誤回調(diào)中喧枷,有一種錯(cuò)誤狀態(tài)是本來已經(jīng)連接成功的,需要進(jìn)行判斷:

? ? 二弓坞、登陸成功之后隧甚,可以將token存到沙盒偏好設(shè)置中進(jìn)行存儲(chǔ)。需要注意昼丑,該方法的回調(diào)是在子線程中進(jìn)行的呻逆,如果需要進(jìn)行ui操作夸赫,需要切換到主線程菩帝。

4、登陸成功茬腿,跳轉(zhuǎn)到會(huì)話列表控制器呼奢,融云已經(jīng)提供了一個(gè)會(huì)話列表控制器 (RCConversationListViewController),我們可以創(chuàng)建一個(gè)控制器繼承自RCConversationListViewController切平。屬性displayConversationTypeArray可以設(shè)置顯示的聊天類型(單聊握础、討論組、群聊悴品、聊天室禀综、客服等)简烘。

會(huì)發(fā)現(xiàn)會(huì)話列表中的用戶頭像和用戶名字不顯示,為了解決這個(gè)問題定枷,需要?jiǎng)?chuàng)建一個(gè)單獨(dú)的類孤澎,遵守協(xié)議RCIMUserInfoDateSource,這個(gè)類用來管理用戶信息的欠窒,用戶信息可以從服務(wù)器或者緩存中讀取覆旭,可以獲取用戶信息、緩存用戶信息岖妄、刪除用戶信息型将。然后將這個(gè)類初始化,傳給[RCIM sharedRCIM]荐虐,RCIM就可以從該類中讀取用戶信息七兜。

5、會(huì)話界面福扬,融云也提供了一個(gè)控制器類(RCConversationViewController)惊搏,同樣創(chuàng)建一個(gè)控制器繼承自它,初始化方法中需要傳遞displayConversationTypeArray和targetId(和誰進(jìn)行會(huì)話)忧换。

自定義消息cell(文字恬惯、表情、紅包亚茬、位置酪耳、語音)等:

分兩步:

第一步:自定義消息并注冊(cè)消息類型:需要繼承自RCMessageContent類,實(shí)現(xiàn)三個(gè)協(xié)議:

消息發(fā)送的流程:

消息接收流程刹缝,下圖主要介紹的是離線接收消息:

第二步:自定義cell并注冊(cè)cell(繼承自融云提供的RCMessageBaseCell或RCMessageCell(布局更復(fù)雜))

這兩種cell的區(qū)別:第二種有頭像和名字碗暗,第一種沒有。

自定義cell需要有三步梢夯,第一步注冊(cè)cell(register方法言疗,和collectionView注冊(cè)方法相似),第二步返回cell item實(shí)例的方法

這個(gè)方法當(dāng)只有自定義cell的時(shí)候才會(huì)調(diào)用颂砸,例如文本消息噪奄、圖片消息、語音消息不是自定義的就不會(huì)走這個(gè)方法人乓。

第三步勤篮,實(shí)現(xiàn)返回cell大小的方法。

6色罚、發(fā)送紅包功能

在會(huì)話控制器的父類RCConversationViewController中有一個(gè)屬性 RCPluhinBoardView * pluginBoardView碰缔,擴(kuò)展功能板view,可以擴(kuò)展發(fā)送地理位置戳护、圖片金抡、紅包等功能瀑焦。

使用該view下面的方法,可以添加擴(kuò)展項(xiàng)梗肝。

實(shí)現(xiàn)該view的代理方法蝠猬,在代理方法中監(jiān)聽到點(diǎn)擊某個(gè)擴(kuò)展項(xiàng)的回調(diào),可以根據(jù)上面方法中的tag值進(jìn)行相應(yīng)的處理统捶。

發(fā)送消息時(shí)會(huì)調(diào)用下面的方法

方法中的參數(shù)說明和注意事項(xiàng)如下:

自定義紅包消息類榆芦,繼承自第五條提到的RCMessageContent,紅包需要有兩個(gè)屬性喘鸟,amount(紅包金額)匆绣,desc(描述)。然后實(shí)現(xiàn)RCMessageContent中的三個(gè)協(xié)議的方法什黑,第一個(gè)協(xié)議RCMessageCoding崎淳,進(jìn)行json之間的編碼和解碼;第二個(gè)協(xié)議RCMessagePersistentCompatible愕把,是否需要存入本地和計(jì)入未讀數(shù)拣凹,紅包消息是需要進(jìn)行本地存儲(chǔ)和進(jìn)行未讀數(shù)的,只要返回枚舉的第三個(gè)選項(xiàng)即可恨豁;第三個(gè)協(xié)議RCMessageContentView嚣镜,在會(huì)話列表中顯示的紅包消息摘要內(nèi)容。

自定義紅包c(diǎn)ell類橘蜜,繼承自RCMessageCell類菊匿,這個(gè)cell類中有一個(gè)messageContentView,是用來放消息內(nèi)容的視圖计福,這個(gè)視圖有一個(gè)setEventBlock:跌捆,cell大小發(fā)生改變的時(shí)候調(diào)用該方法,可以給消息中子視圖重新布局象颖。

7佩厚、撤回消息:

撤回消息的實(shí)現(xiàn)流程,長按消息说订,消息上方出現(xiàn)復(fù)制/刪除/撤回的視圖抄瓦,點(diǎn)擊撤回,刪除該條消息本地存儲(chǔ)克蚂,發(fā)送給融云服務(wù)器闺鲸,服務(wù)器告訴對(duì)方客戶端這是一條撤回消息筋讨,進(jìn)行撤回埃叭。

當(dāng)點(diǎn)擊消息cell時(shí),會(huì)觸發(fā)下面的方法悉罕,在UIMenuControlle為消息上方出現(xiàn)的消息處理視圖

在recall: 方法中需要做的處理是發(fā)送一條撤回消息赤屋,撤回消息cell和紅包消息cell一樣需要自定義立镶,也需要一個(gè)繼承自RCMessageContent的messageContent類,但是撤回消息需要進(jìn)行本地存儲(chǔ)类早,但不需要計(jì)入未讀數(shù)媚媒。

然后將該撤回消息發(fā)送給對(duì)方客戶端,把當(dāng)前的長按消息刪除掉涩僻。本地消息刪除掉了缭召,遠(yuǎn)程的怎么刪除:

實(shí)現(xiàn)上面的代碼,在下面的代碼中接收撤回消息

先判斷是否是撤回消息逆日,然后從當(dāng)前消息列表中找是否有該消息嵌巷,然后進(jìn)行刪除

自定義撤回消息cell,只需要繼承自RCMessageBaseCell室抽,自定義里面的內(nèi)容搪哪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市坪圾,隨后出現(xiàn)的幾起案子晓折,更是在濱河造成了極大的恐慌,老刑警劉巖兽泄,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漓概,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡病梢,警方通過查閱死者的電腦和手機(jī)垛耳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來飘千,“玉大人堂鲜,你說我怎么就攤上這事』つ危” “怎么了缔莲?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長霉旗。 經(jīng)常有香客問我痴奏,道長,這世上最難降的妖魔是什么厌秒? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任读拆,我火速辦了婚禮,結(jié)果婚禮上鸵闪,老公的妹妹穿的比我還像新娘檐晕。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布辟灰。 她就那樣靜靜地躺著个榕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芥喇。 梳的紋絲不亂的頭發(fā)上西采,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音继控,去河邊找鬼械馆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛武通,可吹牛的內(nèi)容都是我干的狱杰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼厅须,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼仿畸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起朗和,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤错沽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后眶拉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體千埃,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年忆植,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了放可。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡朝刊,死狀恐怖耀里,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情拾氓,我是刑警寧澤冯挎,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站咙鞍,受9級(jí)特大地震影響房官,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜续滋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一翰守、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疲酌,春花似錦蜡峰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽早像。三九已至僻肖,卻和暖如春肖爵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背臀脏。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工劝堪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揉稚。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓秒啦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親搀玖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子余境,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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

  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 13,786評(píng)論 0 15
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)灌诅,斷路器芳来,智...
    卡卡羅2017閱讀 134,704評(píng)論 18 139
  • 相信大家在項(xiàng)目中會(huì)用到即時(shí)通訊功能,自己去寫的話會(huì)需要前后臺(tái)合作,會(huì)大大加大開發(fā)的周期,所以考慮使用第三方的即時(shí)通...
    ProgrammerChan閱讀 8,451評(píng)論 16 38
  • 理財(cái)和金融類:《窮查理寶典》《一本書讀懂財(cái)報(bào)》《激蕩三十年1》《激蕩三十年2》《鄧普頓教你逆向投資》《彼得林奇的成...
    子非_似是而非閱讀 143評(píng)論 0 0
  • 核果即舌,雨。
    M有如果閱讀 178評(píng)論 5 4