農(nóng)具的大量使用把人類(lèi)從狩獵采集社會(huì)帶到了農(nóng)業(yè)社會(huì);蒸汽機(jī)的創(chuàng)新和廣泛應(yīng)用,推動(dòng)了第一次工業(yè)革命,帶來(lái)了工業(yè)經(jīng)濟(jì)的蓬勃發(fā)展;電子信息技術(shù)的發(fā)展又驅(qū)動(dòng)人類(lèi)進(jìn)入信息社會(huì)。
大到一個(gè)經(jīng)濟(jì)時(shí)代,小到一個(gè)行業(yè)周期,生產(chǎn)工具的每次創(chuàng)新升級(jí),勢(shì)必帶來(lái)生產(chǎn)力的顯著提升。
在 WICC 廣州的“社交分論壇”上,融云場(chǎng)景化研發(fā)負(fù)責(zé)人臧其龍帶來(lái)《融云社交場(chǎng)景化 SDK 探索》主題演講,分享融云在通信云服務(wù)方面的創(chuàng)新探索。融云第三代場(chǎng)景化 SDK 的服務(wù)模式創(chuàng)新將給開(kāi)發(fā)者提供全新的生產(chǎn)工具,帶來(lái)生產(chǎn)效率的極大提升,也必將重塑產(chǎn)業(yè)格局。
回溯十年前,想要自研一款即時(shí)通訊應(yīng)用還是比較困難的事情,要自建服務(wù)器,研究分發(fā)和到達(dá)率。隨著通信云 PaaS 服務(wù)的逐漸完善,借助融云等平臺(tái)的服務(wù),搭建這樣一款應(yīng)用變得不再是“不可能的挑戰(zhàn)”。
但是,隨著時(shí)間的推進(jìn),市場(chǎng)需求不斷演變。我們會(huì)發(fā)現(xiàn),單一場(chǎng)景需求越來(lái)越少,更多的時(shí)候,我們要面對(duì)的是場(chǎng)景的融合。
以語(yǔ)聊房這個(gè)時(shí)下語(yǔ)音社交熱門(mén)場(chǎng)景為例來(lái)說(shuō),這類(lèi)產(chǎn)品主要有兩部分組成:一是麥位管理部分,用戶上麥后角色發(fā)生變化,從觀眾切換成主播,可以發(fā)布音頻流被觀眾和其他主播聽(tīng)到。二是聊天室部分,也就是公屏消息的部分,房間內(nèi)所有成員都可以發(fā)送文字在公屏區(qū)域溝通。
實(shí)現(xiàn)這兩個(gè)部分,就要同時(shí)接入 RTC 和 IM,也就是融合場(chǎng)景。這種融合需求也出現(xiàn)在直播等等場(chǎng)景中。隨之而來(lái),棘手的問(wèn)題出現(xiàn)了。
問(wèn)題并非出于服務(wù)能力不足,反而是大部分行業(yè)供給都已經(jīng)非常強(qiáng)大造成的。一個(gè) SDK,基本上有 200+ 甚至 300+個(gè)API。當(dāng)開(kāi)發(fā)者接觸到一個(gè)功能強(qiáng)大的 SDK,首先面對(duì)的難題是學(xué)習(xí)成本特別高,其次是它的學(xué)習(xí)曲線也比較陡峭。
比如 RTC 會(huì)涉及到很多非常專(zhuān)業(yè)的音視頻領(lǐng)域知識(shí),要了解流的定義與發(fā)布,學(xué)習(xí)一些編碼知識(shí),掌握了基礎(chǔ)知識(shí)后,才能讓 SDK 發(fā)揮應(yīng)有的作用。
為了解決上面說(shuō)到的痛點(diǎn)問(wèn)題,融云推出了第三代 SDK 服務(wù)模式,一舉破解舊供給的高學(xué)習(xí)成本難題。
以語(yǔ)聊房場(chǎng)景為例,我們可以更加直觀地感受三代服務(wù)模式的升級(jí)核心。
語(yǔ)聊房產(chǎn)品的核心是麥位管理,語(yǔ)聊房解決方案,就是通過(guò)上麥、下麥等一系列麥位管理來(lái)對(duì)用戶和流進(jìn)行同步管理的 SDK。
第一代解決方案,使用業(yè)務(wù)服務(wù)器管理每個(gè)房間的麥位。前端只負(fù)責(zé)調(diào)用后端的接口,后端管理麥位,不單要更改麥位,還要負(fù)責(zé)整個(gè)狀態(tài)的刷新和發(fā)布,非常復(fù)雜。
第二代解決方案,也就是目前其他廠商普遍使用的方式。把管理麥位的能力放在 IM SDK 里,通常是聊天室屬性,擁有麥位的增、刪、改、查同步能力。服務(wù)模式是,開(kāi)發(fā)者下載 Demo,自行研究實(shí)現(xiàn)邏輯,再利用開(kāi)源代碼二開(kāi)實(shí)現(xiàn)。也就是說(shuō),開(kāi)發(fā)者還是需要理解廠商提供的開(kāi)源代碼,上手難度比較高。
第三代解決方案,也就是融云行業(yè)首推的 SDK。開(kāi)發(fā)者無(wú)需研究代碼,也不需要單獨(dú)集成 IM 和 RTC,只需要對(duì)這個(gè)產(chǎn)品有了解,就可以調(diào)用接口實(shí)現(xiàn)應(yīng)用。而且這個(gè)接口數(shù)量只有不超過(guò) 20 個(gè)。
利用第一代解決方案,最常出現(xiàn)的問(wèn)題就是幽靈麥,上麥的時(shí)候發(fā)不出聲,下麥又能發(fā)出聲音了。這是因?yàn)?,前端代碼和后端代碼需要嚴(yán)絲合縫實(shí)現(xiàn)同步,前后端的協(xié)同和更新很容易出差錯(cuò),造成 2-3 秒的延遲,這給產(chǎn)品體驗(yàn)帶來(lái)的打擊是毀滅性的。
第二代解決方案,只需要關(guān)注前端開(kāi)源代碼,但是也要面臨殘酷的現(xiàn)實(shí)問(wèn)題。首先,原封不動(dòng)上架產(chǎn)品面對(duì)很大的審核被拒風(fēng)險(xiǎn);其次,新增功能需要學(xué)習(xí)底層機(jī)制再改代碼,難度大,易出 Bug。
融云的第三代 SDK 解決方案,學(xué)習(xí)難度非常低,只需要對(duì)基礎(chǔ)的上麥、下麥、鎖麥等有了解,甚至根據(jù) 20 個(gè) API 的注釋就能成功調(diào)用。無(wú)需理解底層代碼,無(wú)需研究實(shí)現(xiàn)邏輯,無(wú)需管理流的訂閱,極大提升開(kāi)發(fā)速度,7 天就能上線一個(gè)語(yǔ)聊房。
貼近業(yè)務(wù):接口設(shè)計(jì)不能云里霧里令人不解。
以最常見(jiàn)的三個(gè)功能為例,enterSeat(index: Int) 接口,index 設(shè)置為麥的序號(hào),就完成了這一麥位上角色轉(zhuǎn)換、流的訂閱、UI 的同步和刷新等一系列操作。muteSeat(index: Int) 接口,Mute 是靜音,Seat 是某個(gè)麥位,后面會(huì)帶一個(gè)麥位的序號(hào),可以關(guān)閉某個(gè)麥位上的聲音;kickUserFromSeat(userId: String) 接口就可以把某個(gè)用戶踢下麥。都說(shuō)細(xì)節(jié)是魔鬼,第三代 SDK 可以說(shuō)是已經(jīng)把魔鬼封在黑盒中了,開(kāi)發(fā)者可以無(wú)憂開(kāi)發(fā)。
可擴(kuò)展性:語(yǔ)聊覆蓋的場(chǎng)景非常多,比如非常火的狼人殺業(yè)務(wù),需要麥位體現(xiàn)特殊身份——平民、法官、狼人,接口設(shè)計(jì)得足夠可拓展,就可以覆蓋所有熱門(mén)場(chǎng)景,也方便開(kāi)發(fā)者去做不同業(yè)務(wù)的嘗試。
簡(jiǎn)潔易用:語(yǔ)聊房 SDK 核心接口只有 20 個(gè),大部分場(chǎng)景只需要其中 10 個(gè)基本上就可以實(shí)現(xiàn)業(yè)務(wù)。核心功能回調(diào)只有 23 個(gè),對(duì)于不太關(guān)注性能或不需要兼容低端手機(jī)的業(yè)務(wù),開(kāi)發(fā)者只需關(guān)心麥位信息和房間信息的變更兩個(gè)回調(diào)就可以。
語(yǔ)聊房、呼叫場(chǎng)景之外,融云近期上線了直播 SDK,預(yù)制了 9 種合流布局,覆蓋所有的直播合流場(chǎng)景。
直播場(chǎng)景通常用戶感知最強(qiáng)烈的就是兩個(gè)步驟,喚起攝像頭做直播前美顏等準(zhǔn)備 ? 開(kāi)始直播。
融云直播 SDK 把這兩步封裝成 API,第一步是Prepare,封裝了融云開(kāi)源的 BeautyKit 美顏等能力;第二步是Live Video,把所有直播流程實(shí)現(xiàn)邏輯隱藏掉,開(kāi)發(fā)者只需要調(diào)用接口就可以實(shí)現(xiàn)業(yè)務(wù)。
接下來(lái),融云還會(huì)把會(huì)議、教育等場(chǎng)景進(jìn)行完整封裝提供給開(kāi)發(fā)者,幫開(kāi)發(fā)者一一攻克場(chǎng)景難關(guān)。
同時(shí),在 SDK 組成的“骨骼”、“肌肉”之外,融云還將開(kāi)源一系列含 UI 體系的 Kit,作為配套使用的“皮膚”。比如,ChatKit、GiftKit、BeautyKit、MusicControlKit 等等。搭配開(kāi)發(fā)者可在后臺(tái)一鍵配置的“內(nèi)容審核”能力,真正為開(kāi)發(fā)者提供一站式的完整解決方案服務(wù)。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )