30 分鐘搭建語聊房,融云場景化 SDK 是怎么做到的?

一個擁有 1-2 年經驗的開發(fā)者,從 0 到 1 上線應用只要 7 天。一個剛起步的程序員,可以 30 分鐘內完成一個 Demo。

這不是天方夜譚,而是融云場景化 SDK 帶給行業(yè)的創(chuàng)變。

商業(yè)社會兵貴神速,特別是以 Z 世代人群為目標用戶的語音社交類應用。國家統(tǒng)計局的數(shù)據(jù)顯示,1995 年到 2009 年出生的Z 世代人口接近 2.6 億。而相比“前輩”,他們的偏好更加個性、悅己、多變,社交上更講究圈子、同好。

語音社交因沉浸式的情感交互而被 Z 世代 pick,但應用要不斷圍繞主流模式嘗試突破,依靠玩法創(chuàng)新?lián)屨枷葯C,否則產品也就是“類卿”爾。

今天,我們就來詳細了解一下,融云語聊房 SDK,是如何實現(xiàn)全面覆蓋語聊房業(yè)務場景,支持開發(fā)者快速出活的。

30 分鐘搭建語聊房,融云場景化 SDK 是怎么做到的?

01 語聊房了解一下

帶大家拆解這款“行業(yè)利器”之前,咱們先重新認識一下語聊房。

語聊房,從字面上看就是語音聊天房,核心是多人實時語音交互。疫情之下,隨著 Clubhouse 的大火,語聊房業(yè)務迎來爆發(fā)期,語音社交成功出圈。

30 分鐘搭建語聊房,融云場景化 SDK 是怎么做到的?

(融云語聊房 Demo)

從上圖看,語聊房 APP 的界面基本上由兩部分組成。

上半部分主要是用戶和麥位,對比生活中的場景,像一個有一位主持人和八位發(fā)言者的講座,臺下有若干聽眾;聽眾若有興趣發(fā)言,走上講臺,拿起麥克風就可以變成發(fā)言人。

下半部分則是一些常規(guī)的聊天室模式,承擔發(fā)送信息、發(fā)送禮物等功能。

開發(fā)這樣一款產品,一般會面對什么問題呢?

首先是麥位信息同步。一個語聊房可能會有幾千人在線,任何一個人上麥都需要在極短時間內把麥位信息同步給房間內所有人,這是第一個挑戰(zhàn)。

其次是麥位管理。

上麥,意味著用戶擁有了發(fā)布音頻流的能力,角色從觀眾切換為主播。

下麥則意味著主播變成普通用戶,失去了發(fā)布音頻流的能力。

鎖麥,就是鎖定麥位,任何人都不可以上麥。

閉麥,顧名思義,該麥位上的用戶無法發(fā)言。

邀請上麥,由房主邀請聽眾上麥互動。

還有一些音頻類的常規(guī)操作,比如靜音、混音、播放音樂等。

語聊房產品的核心是麥位管理,融云的語聊房解決方案,就是通過上麥、下麥等一系列麥位管理來對用戶和流進行同步管理的 SDK。

02 語聊房業(yè)務流程

經過多年發(fā)展,融云的 IM 和 RTC 已經是行業(yè)基建。開發(fā)者使用 PaaS 服務商的這些能力,可以很方便地實現(xiàn)即時通訊和實時音視頻的業(yè)務應用。

但是,把 RTC、IM 能力和場景玩法相結合的復雜業(yè)務,實現(xiàn)起來依然面臨不小的困難。基于對行業(yè)的深厚積累和前瞻判斷,融云推出下一代場景化 SDK 解決方案,首發(fā)場景聚焦與 Z 世代深度黏合的語聊房業(yè)務,滿足開發(fā)者快速實現(xiàn)業(yè)務的需求。

那么在語聊房業(yè)務上,為開發(fā)者提供類似行業(yè)基建的 SDK,要處理哪些業(yè)務邏輯呢?

30 分鐘搭建語聊房,融云場景化 SDK 是怎么做到的?

(房主端流程)

房主端流程:如圖,單主播情況下,房主需要調用接口加入一個房間,然后邀請觀眾上麥或者處理觀眾的上麥請求。同時,房主還擁有閉麥、鎖麥等麥位管理權限。

多主播情況下,首先要處理麥上人員的語音互動,這意味著主播需要互相訂閱流來聽到彼此的聲音;房主可以調用接口關閉連麥者麥克風,或讓連麥者下麥;通過聊天室屬性,所有人都可以監(jiān)聽到房間內狀態(tài)的變化,然后做出響應處理。

30 分鐘搭建語聊房,融云場景化 SDK 是怎么做到的?

(觀眾端流程)

觀眾端流程:如圖,觀眾瀏覽直播間列表,選擇感興趣的加入。加入后,語聊房自動訂閱直播流;監(jiān)聽語聊房狀態(tài),更新房間 UI 和麥位 UI;收到直播結束消息,調用語聊房接口退出房間。

03 語聊房場景三大難題,融云如何通關

語聊房應用實現(xiàn)面臨三大技術難關:

1)、麥位狀態(tài)如何進行云端存儲與通知

2)、如何實現(xiàn)邀請上麥和排麥請求機制

3)、如何設計 API

首先,麥位狀態(tài)的云端存儲與通知。

答案是——利用融云的聊天室屬性管理能力。

每個聊天室提供 100 個 key-value 的鍵值對,特殊需求也可以申請擴容。

聊天室用戶新增,更新,刪除某個鍵值對,其他用戶都會毫秒級速度收到 update 回調,保持一定的持續(xù)性,不會造成亂序等問題。

穩(wěn)定、可靠,同時更改多個鍵值對也能保證每個更新都觸發(fā)聊天室所有用戶回調。

這樣,語聊房的麥位狀態(tài)存儲和同步就可以比較順暢地實現(xiàn)了。

30 分鐘搭建語聊房,融云場景化 SDK 是怎么做到的?

(加入房間邏輯)

以加入房間這一動作為例:

用戶加入房間只需傳遞一個 RoomId,語聊房 SDK 自動幫用戶加入 IM Room 和 RTC Room,獲得收發(fā)消息和音視頻傳輸?shù)哪芰?。在加入這些房間后,用戶就會收到一個回調,以回調的方式獲得當下最新的房間信息和麥位信息。

如圖所示,融云語聊房 SDK隱藏加入房間需要的多個操作,融合成傳遞 RoomId 一個步驟,為開發(fā)者節(jié)省大量的研發(fā)工作。

在這個環(huán)節(jié),用基礎類 IM 和 RTC 能力開發(fā)需要2 到 3 天,使用融云語聊房 SDK 只需 10 分鐘。

其次,如何實現(xiàn)邀請機制和申請機制。

要實現(xiàn)順暢的邀請和申請機制,有兩點基礎。第一,邀請的發(fā)送和接收信令必須是有序、準確的。第二,信令不能丟失?;谌谠?IM 通訊服務安全、可靠、高效的信令通道,在這方面有天然優(yōu)勢。

30 分鐘搭建語聊房,融云場景化 SDK 是怎么做到的?

(上麥邏輯)

以申請上麥為例,開發(fā)者自己實現(xiàn)需要先設計和實現(xiàn)一套自己的信令服務。使用融云語聊房 SDK,只需要一句 RequestSeat(請求麥位),房主端或有管理權限的成員,會收到一個回調,選擇 accept 或 reject,觀眾端隨即收到相應回調。

這一業(yè)務邏輯上,融云語聊房 SDK 為開發(fā)者簡化了百分之八十的操作。

最后,如何設計 API。

這是整個 SDK 中最復雜的部分,也直接決定了它的實用性。功能做得再強大,如果無法以簡單易懂的方式呈現(xiàn),也會因為學習成本太大而讓人望而卻步。

在這方面,融云希望降低開發(fā)者的學習成本,讓他們只通過文件的注釋和命名就基本了解使用辦法。

為了達到這個目標,融云的語聊房 SDK 在設計 API 時,首要原則是貼近業(yè)務。與傳統(tǒng)的依賴倒置原則正好相反,特定場景的 API 設計,不能特別依賴于抽象接口,而要特別貼近具體的場景。

在語聊房 SDK 的使用中,開發(fā)者只要了解語聊房的基本模式,就能通過接口的命名,了解接口的功能,幾乎可以零學習成本掌握。

比如,enterSeat(index: Int)接口,index 設置為麥的序號,就完成了這一麥位上角色轉換、流的訂閱等一系列操作。muteSeat(index: Int)接口則可以關閉某個麥位上的聲音;kickUserFromSeat(userId: String)接口就可以把某個用戶踢下麥。

其次要可擴展,無論是房間的屬性,還是麥位的屬性,SDK 都提供強大的可擴展性,自定義程度高,覆蓋所有語聊房的場景,即便是語聊房中形式和內容最復雜的狼人殺場景也可以滿足。

最后是簡潔易用,語聊房 SDK核心接口只有 20 個,大部分場景只需要其中 10 個基本上就可以實現(xiàn)業(yè)務。核心功能回調只有 23 個,對于不太關注性能或不需要兼容低端手機的業(yè)務,開發(fā)者只需關心麥位信息和房間信息的變更兩個回調就可以。

而且,融云提供結構清晰的文檔指南,緊貼語聊房場景,每部分都包含簡潔易懂的視頻示例,并提供一個全功能的線上開源 Demo,接入時有充足的參考資源。

此外,在內容安全要求趨嚴的背景下,融云還提供安全審查等關乎語聊房業(yè)務生死的通信周邊能力。開發(fā)者只需在后臺設置中一鍵開啟安全審查,即可接入數(shù)美等在線業(yè)務風控解決方案提供商提供的安全審查服務,為開發(fā)者的業(yè)務開展保駕護航。

結合 IM + RTC + X“全”通信解決方案和對具體場景的業(yè)務邏輯抽取,融云的場景化 SDK 解決方案,將為開發(fā)者提供快速切入新賽道和發(fā)展多元業(yè)務的下一代服務新范式。

(免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現(xiàn)的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。
任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯(lián)系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。 )