為Web實時通信(WebRTC)交互流提供智能管理的方法和系統的制作方法
【專利說明】為Web實時通信(WebRTC)交互流提供智能管理的方法和系統
技術領域
[0001]本公開的技術概括而言涉及Web實時通信(Web Real-Time Communicat1ns,WebRTC)交互流。
【背景技術】
[0002]Web實時通信(WebRTC)是正在進行的開發(fā)用于將實時通信功能集成到諸如web瀏覽器之類的web客戶端中以使能與其他web客戶端的直接交互的努力。這個實時通信功能可由web開發(fā)者經由諸如超文本標記語言的版本5 (HTML5)提供的那些之類的標準標記標簽和諸如JavaScript API之類的客戶端側腳本處理應用編程接口(API)來訪問。關于WebRTC 的更多信息可在 Alan B.Johnston 和 Daniel C.Burnett 所著的“WebRTC: APIs andRTCffEB Protocols of the HTML5Real_Time Web,,第 2 版(2013Digital Codex LLC)中找至IJ,這里通過引用將該文獻全部并入。
[0003]WebRTC提供了內置的能力用于在點對點交互式會話和多方交互式會話中建立實時視頻、音頻和/或數據流。WebRTC標準當前正由萬維網聯盟(W3C)和互聯網工程任務組(IETF)聯合開發(fā)。關于WebRTC標準的當前狀態(tài)的信息可在例如http://www.w3c.0rg和http://www.1etf.0rg 找至丨J0
[0004]為了建立WebRTC交互流(例如,實時視頻、音頻和/或數據交換),兩個WebRTC客戶端從web應用服務器取回使能了 WebRTC的web應用,例如HTML5/JavaScript web應用。通過這些web應用,兩個WebRTC客戶端隨后參與用于發(fā)起對等連接的對話,WebRTC交互流將通過該對等連接。這個發(fā)起對話可包括用于傳達定義WebRTC交互流的特性的參數并就這些參數達成協議的媒體協商。一旦發(fā)起對話完成,WebRTC客戶端隨后就可以與彼此建立直接對等連接,并且可以開始傳輸實時通信的媒體和/或數據封包的交換。WebRTC客戶端之間的對等連接通常使用安全實時傳輸協議(Secure Real-time Transport Protocol,SRTP)來傳輸實時媒體流,并且可利用各種其他協議來進行實時數據交換。雖然WebRTC客戶端之間的直接對等連接是典型的,但可以使用其他拓撲,例如包括共同的媒體服務器的那些拓撲,其中每個WebRTC客戶端直接連接到該媒體服務器。
[0005]提供WebRTC功能的典型WebRTC客戶端(例如,使能了 WebRTC的web瀏覽器)已演進為主要支持文本和數據驅動的交互。這樣,現有的WebRTC客戶端的響應于諸如拖放輸入之類的用戶輸入手勢的行為在WebRTC交互流的情境中可能沒有被明確地定義。在多個用戶參與WebRTC交互式會話和/或WebRTC客戶端的多個實例同時活動時尤其如此。
【發(fā)明內容】
[0006]詳細描述中公開的實施例提供了對于Web實時通信(WebRTC)交互流的智能管理。也公開了有關方法、系統和計算機可讀介質。在此,在一個實施例中,提供了一種用于智能地管理WebRTC交互流的系統。該系統包括至少一個通信接口,和與該至少一個通信接口相關聯的計算設備。計算設備包括WebRTC客戶端,該WebRTC客戶端被配置為接收針對與一個或多個WebRTC用戶相對應的一個或多個視覺表示的用戶輸入手勢。WebRTC客戶端還被配置為基于WebRTC客戶端的當前狀態(tài)來為WebRTC客戶端確定情境。WebRTC客戶端還被配置為獲得與一個或多個WebRTC用戶相關聯的一個或多個身份屬性。WebRTC客戶端還被配置為基于情境、用戶輸入手勢和一個或多個身份屬性來提供包括該一個或多個WebRTC用戶的一個或多個WebRTC交互流。
[0007]在另一實施例中,提供了一種用于智能地管理WebRTC交互流的方法。該方法包括由在計算設備上執(zhí)行的WebRTC客戶端接收針對與一個或多個WebRTC用戶相對應的一個或多個視覺表示的用戶輸入手勢。該方法還包括由WebRTC客戶端基于WebRTC客戶端的當前狀態(tài)來為WebRTC客戶端確定情境。該方法還包括獲得與一個或多個WebRTC用戶相關聯的一個或多個身份屬性。該方法還包括基于情境、用戶輸入手勢和一個或多個身份屬性來提供包括一個或多個WebRTC用戶的一個或多個WebRTC交互流。
[0008]在另一實施例中,提供了一種非暫態(tài)計算機可讀介質,其上存儲有計算機可執(zhí)行指令來使得處理器實現一種用于智能地管理WebRTC交互流的方法。由計算機可執(zhí)行指令實現的該方法包括接收針對與一個或多個WebRTC用戶相對應的一個或多個視覺表示的用戶輸入手勢。由計算機可執(zhí)行指令實現的該方法還包括基于WebRTC客戶端的當前狀態(tài)來為WebRTC客戶端確定情境。由計算機可執(zhí)行指令實現的該方法還包括獲得與一個或多個WebRTC用戶相關聯的一個或多個身份屬性。由計算機可執(zhí)行指令實現的該方法還包括基于情境、用戶輸入手勢和一個或多個身份屬性來提供包括一個或多個WebRTC用戶的一個或多個WebRTC交互流。
【附圖說明】
[0009]結合在本說明書中并形成本說明書的一部分的附圖圖示了本公開的若干個方面,并且與描述一起幫助說明本公開的原理。
[0010]圖1是示出包括用于智能地管理WebRTC交互流的Web實時通信(WebRTC)客戶端的示范性交互式通信系統的概念圖;
[0011]圖2是示出圖1的WebRTC客戶端對WebRTC交互流的智能管理的示范性操作的流程圖;
[0012]圖3A和3B是示出利用拖放用戶輸入手勢將圖1的WebRTC客戶端的第一實例中的WebRTC交互式會話的參與者添加到WebRTC客戶端的第二實例中的現有WebRTC交互式會話中的圖;
[0013]圖4是示出利用拖放用戶輸入手勢將圖1的WebRTC客戶端的第一實例中的WebRTC交互式會話的參與者添加到WebRTC客戶端的第二實例中的現有WebRTC交互式會話中的示范性操作的流程圖;
[0014]圖5A和5B是示出利用拖放用戶輸入手勢將圖1的WebRTC客戶端的第一實例中的WebRTC交互式會話的參與者添加到WebRTC客戶端的第二實例中的新WebRTC交互式會話中的圖;
[0015]圖6是示出利用拖放用戶輸入手勢將圖1的WebRTC客戶端的第一實例中的WebRTC交互式會話的參與者添加到WebRTC客戶端的第二實例中的新WebRTC交互式會話中的示范性操作的流程圖;
[0016]圖7A和7B是示出用戶的利用與未參與活動WebRTC交換的應用相關聯的視覺表示將該用戶添加到圖1的WebRTC客戶端的實例中的WebRTC交互式會話中的圖;
[0017]圖8是示出利用用戶的與未參與活動WebRTC交換的應用相關聯的視覺表示將該用戶添加到圖1的WebRTC客戶端的實例中的WebRTC交互式會話中的示范性操作的流程圖;
[0018]圖9A和9B是示出利用與未參與活動WebRTC交換的應用相關聯的用戶的視覺表示將該用戶添加到圖1的WebRTC客戶端的實例中的新WebRTC交互式會話中的圖;
[0019]圖10是示出利用與未參與活動WebRTC交換的應用相關聯的用戶的視覺表示將該用戶添加到圖1的WebRTC客戶端的實例中的新WebRTC交互式會話中的示范性操作的流程圖;并且
[0020]圖11是可包括圖1的WebRTC客戶端的示范性的基于處理器的系統的框圖。
【具體實施方式】
[0021]現在參考附圖,描述本公開的若干個示范性實施例。“示范性”一詞在本文中用來指“充當示例、實例或例示”。本文描述為“示范性”的任何實施例不一定要被解釋為與其他實施例相比更優(yōu)選或有利。
[0022]詳細描述中公開的實施例提供了對于Web實時通信(WebRTC)交互流的智能管理。也公開了有關方法、系統和計算機可讀介質。在此,在一個實施例中,提供了一種用于智能地管理WebRTC交互流的系統。該系統包括至少一個通信接口,和與該至少一個通信接口相關聯的計算設備。計算設備包括WebRTC客戶端,該WebRTC客戶端被配置為接收針對與一個或多個WebRTC用戶相對應的一個或多個視覺表示的用戶輸入手勢。WebRTC客戶端還被配置為基于WebRTC客戶端的當前狀態(tài)為WebRTC客戶端確定情境。WebRTC客戶端還被配置為與一個或多個WebRTC用戶相關聯的一個或多個身份屬性。WebRTC客戶端還被配置為基于情境、用戶輸入手勢和一個或多個身份屬性來提供包括該一個或多個WebRTC用戶的一個或多個WebRTC交互流。
[0023]圖1示出了包括用于如本文公開那樣智能地管理WebRTC交互流的示范性WebRTC交互式系統10。具體地,示范性WebRTC交互式系統10包括用于建立WebRTC交互流和提供對WebRTC交互流的智能管理的WebRTC客戶端12。當在本文中使用時,"WebRTC交互式會話”指的是用于建立對等連接或其他連接拓撲并且在兩個或更多個端點之間開始WebRTC交互流的操作。本文公開的“WebRTC交互流”指的是根據WebRTC標準和協議在兩個或更多個端點之間傳遞的交互式媒體流和/或交互式數據流。作為非限制性示例,構成WebRTC交互流的交互式媒體流可包括實時音頻流和/或實時視頻流,或者其他實時的媒體或數據流。構成WebRTC交互流的數據和/或媒體在本文中可統稱為“內容”。
[0024]在論述WebRTC客戶端12的細節(jié)之前,首先描述圖1的WebRTC交互式系統10中的WebRTC交互流的建立。在圖1中,第一計算設備14執(zhí)行第一 WebRTC客戶端12,并且第二計算設備16執(zhí)行第二 WebRTC客戶端18。要理解,計算設備14和16可以都位于同一公共或私有網絡內,或者可位于分開的、在通信上耦合的公共或私有網絡內。圖1的WebRTC交互式系統10的一些實施例可規(guī)定計算設備14和16中的每一個可以是具有網絡通信能力的任何計算設備,例如智能電話、平板計算機、專用web設備、媒體服務器、桌面型或服務器計算機或者特制的通信設備,以上這些是非限制性示例。計算設備14和16分別包括通信接口 20和22,用于將計算設備14和16連接到一個或多個公共和/或私有網絡。在一些實施例中,計算設備14和16的元件可分布在多于一個計算設備14和16上。
[0025]WebRTC客戶端12和18在此示例中可以各自是web瀏覽器應用和/或專用的通信應用,上述這些是非限制性示例。WebRTC客戶端12包括腳本處理引擎24和WebRTC功能提供者26。類似地,WebRTC客戶端18包括腳本處理引擎28和WebRTC功能提供者30。腳本處理引擎24和28使得以諸如JavaScript之類的腳本處理語言編寫的客戶端側應用能夠分別在WebRTC客戶端12和18內執(zhí)行。腳本處理引擎24和28還提供應用編程接口(API)以促進與WebRTC客戶端12和/或18內的其他功能提供者、與計算設備14和/或16和/或與其他web客戶端、用戶設備或web服務器的通信。WebRTC客戶端12的WebRTC功能提供者26和WebRTC客戶端18的WebRTC功能提供者30實現經由WebRTC使能實時交互流所必要的協議、編解碼器和API。腳本處理引擎2