本公開一般涉及互聯(lián)網(wǎng)技術,具體涉及視頻通話,尤其涉及一種視頻社交中用戶狀態(tài)處理方法及裝置。
背景技術:
隨著互聯(lián)網(wǎng)和視頻流媒體技術的快速發(fā)展,目前互聯(lián)網(wǎng)已進入視頻社交時代,在這種大背景下,視頻社交等相關產(chǎn)品形態(tài)應運而生。不同地域異地、不同性別和年齡的用戶可以通過視頻社交產(chǎn)品來匹配陌生的用戶,進行視頻聊天,豐富業(yè)余生活;同時在進行視頻聊天的同時,用戶可互相添加好友來進一步建立社交關系,以便后續(xù)擴展自己的社交網(wǎng)絡。
視頻是一種復雜的多媒體社交途徑,因此確保視頻社交產(chǎn)品從用戶匹配,到視頻的建立和通話完成,嚴格按照時序進行是至關重要的。因此視頻匹配和通話系統(tǒng)是視頻社交產(chǎn)品的關鍵技術核心。
目前業(yè)界多數(shù)的視頻產(chǎn)品都是兩個特定用戶之間的視頻通話(例如微信),沒有包含陌生人的匹配策略在內(nèi),因此只需進行視頻通話即可。加入匹配策略后的視頻通話系統(tǒng),對于軟件系統(tǒng)中的狀態(tài)帶來了更多的復雜度和不確定性。
為了保證用戶狀態(tài)和服務器狀態(tài)的一致性,可以采用數(shù)據(jù)庫加鎖的方式,即沒進行一個操作,都在數(shù)據(jù)庫中進行標記,可以標記操作事件的時間點、操作內(nèi)容等,當出現(xiàn)狀況時,查找數(shù)據(jù)庫中進行的標記,從而確定所出現(xiàn)的問題,進行相應處理,但是,通過數(shù)據(jù)庫加鎖的方式保證一致性,系統(tǒng)的開銷較大,系統(tǒng)的處理負擔會加重。
可見,加入匹配策略后的視頻通話系統(tǒng),對于軟件系統(tǒng)中的狀態(tài)帶來了更多的復雜度和不確定性。
而通過數(shù)據(jù)庫加鎖的方式保證一致性,會帶來額外的系統(tǒng)開銷,加重系統(tǒng)處理負擔。
技術實現(xiàn)要素:
鑒于現(xiàn)有技術中的上述缺陷或不足,期望提供一種視頻社交中用戶狀態(tài)處理方法及裝置,以提高視頻社交中的穩(wěn)定性且不增加系統(tǒng)負擔。
第一方面,本發(fā)明實施例提供一種視頻社交中用戶狀態(tài)處理方法,該方法包括:
在用戶匹配和視頻通話的過程中,響應于接收到設定消息或進行設定操作,更新相應用戶的狀態(tài);以及
針對用戶當前的狀態(tài)進行相應操作。
第二方面,本發(fā)明實施例提供一種視頻社交中用戶狀態(tài)處理裝置,該裝置包括:
狀態(tài)更新單元,用于在用戶匹配和視頻通話的過程中,響應于接收到設定消息或進行設定操作,更新相應用戶的狀態(tài);以及
操作單元,用于針對用戶當前的狀態(tài)進行相應操作。
第三方面,本發(fā)明實施例提供一種設備,包括處理器和存儲器;其中:
存儲器包含可由處理器執(zhí)行的指令以使得處理器執(zhí)行:第一方面中所提供的視頻社交中用戶狀態(tài)處理方法。
第四方面,本發(fā)明實施例提供一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序用于:
實現(xiàn)第一方面中所提供的視頻社交中用戶狀態(tài)處理方法。
本發(fā)明實施例提供一種視頻社交中用戶狀態(tài)處理方法及裝置,在用戶匹配和視頻通話的過程中,響應于接收到設定消息或進行設定操作,更新相應用戶的狀態(tài),再針對用戶當前的狀態(tài)進行相應操作。由于對于每個用戶,均設置一套狀態(tài),并在接收到設定消息或進行設定操作后,更新相應用戶的狀態(tài),服務器端可以確保每個用戶都穩(wěn)定的處于一個特定的狀態(tài)中,并且該狀態(tài)與用戶端的狀態(tài)具有一致性;同時,通過維護用戶的狀態(tài)在提高系統(tǒng)的穩(wěn)定性和一致性的同時,不需要頻繁進行事件及時間的記錄和查找,系統(tǒng)開銷也較小。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1為本發(fā)明實施例提供的視頻社交中用戶狀態(tài)處理方法流程圖;
圖2為本發(fā)明實施例提供的優(yōu)選的視頻社交中用戶狀態(tài)處理方法流程圖;
圖3為本發(fā)明實施例提供的視頻社交中用戶狀態(tài)處理裝置結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例提供的視頻社交中用戶狀態(tài)處理設備結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本申請作進一步的詳細說明??梢岳斫獾氖牵颂幩枋龅木唧w實施例僅僅用于解釋相關發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與發(fā)明相關的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細說明本申請。
請參考圖1,本發(fā)明實施例提供的視頻社交中用戶狀態(tài)處理方法包括:
步驟s101、在用戶匹配和視頻通話的過程中,響應于接收到設定消息或進行設定操作,更新相應用戶的狀態(tài);以及
步驟s102、針對用戶當前的狀態(tài)進行相應操作。
由于對于每個用戶,均設置一套狀態(tài),并在接收到設定消息或進行設定操作后,更新相應用戶的狀態(tài),服務器端可以確保每個用戶都穩(wěn)定的處于一個特定的狀態(tài)中,并且該狀態(tài)與用戶端的狀態(tài)具有一致性;同時,通過維護用戶的狀態(tài)在提高系統(tǒng)的穩(wěn)定性和一致性的同時,不需要頻繁進行事件及時間的記錄和查找,系統(tǒng)開銷也較小。
具體實施時,可以根據(jù)實際情況設置狀態(tài),例如在用戶上線后,將用戶的狀態(tài)更新為空閑狀態(tài),在用戶要求配對時,將用戶的狀態(tài)更新為配對狀態(tài),在用戶視頻通話時,將用戶狀態(tài)更新為通話狀態(tài)。
通過定義用戶從打開app到完成視頻聊天這一過程中的可能處于的狀態(tài)及狀態(tài)間變遷的條件,使用戶在發(fā)起匹配、視頻通話中及后臺切換等操作后,都能確保其處于一個固定的狀態(tài),保證了系統(tǒng)的正確性和穩(wěn)定性。
用戶在上線后,并未發(fā)起匹配和視頻連接時,可以進入空閑狀態(tài),此時,步驟s101中,在用戶匹配和視頻通話的過程中,在接收到設定消息或進行設定操作后,更新相應用戶的狀態(tài),具體包括:
接收到用戶的上線消息后,將該用戶的狀態(tài)更新為空閑狀態(tài)。
對于空閑狀態(tài)的用戶,可以不進行任何操作,或者本領域技術人員也可以根據(jù)實際需要,對空閑狀態(tài)的用戶進行相關內(nèi)容的推送等操作。
進一步,在用戶發(fā)起匹配請求后,可以將用戶設置為匹配中狀態(tài),此時,步驟s101中,在用戶匹配和視頻通話的過程中,在接收到設定消息或進行設定操作后,更新相應用戶的狀態(tài),還包括:
接收到空閑狀態(tài)的用戶的匹配請求后,將該用戶的狀態(tài)更新為匹配中狀態(tài);
相應的,步驟s102中,針對用戶當前的狀態(tài)進行相應操作,具體包括:
對匹配中狀態(tài)的用戶進行匹配。
更進一步,可以設置匹配隊列,對于匹配中狀態(tài)的用戶,均加入到匹配隊列中,再對匹配隊列中的用戶進行配對,此時,對匹配中狀態(tài)的用戶進行匹配,具體包括:
將匹配中狀態(tài)的用戶加入到匹配隊列中;
按照預先設定的匹配算法,對匹配隊列中的用戶進行配對。
例如,可以將用戶的id(標識)加入到匹配隊列q中,根據(jù)隊列q中存在的所有待匹配用戶,利用匹配算法將其以設定人數(shù)為單位進行匹配,產(chǎn)生匹配用戶組m1,m2,m3……mn,其中,每個匹配用戶組m中均包含設定人數(shù)的待匹配用戶的id。
該設定人數(shù)可以設置為兩個,也可設置為多個。
進一步,對于匹配完成的用戶,可以將其狀態(tài)設置為匹配完成狀態(tài),此時,步驟s101中,在用戶匹配和視頻通話的過程中,在接收到設定消息或進行設定操作后,更新相應用戶的狀態(tài),還包括:
將找到匹配用戶的用戶的狀態(tài)更新為匹配完成狀態(tài);
相應的,步驟s102中,針對用戶當前的狀態(tài)進行相應操作,還包括:
對于匹配完成狀態(tài)的用戶,將用戶信息發(fā)送給與之匹配的用戶。
具體的,可以利用用戶id(標識)獲取所匹配的用戶中各個用戶的信息,該用戶信息可以包括用戶名、頭像、年齡、性別等信息,也可以根據(jù)實際情況設置用戶信息中所包括的內(nèi)容。
進一步,在下發(fā)用戶信息之后,可以根據(jù)用戶信息下發(fā)是否成功判斷用戶的下一步狀態(tài),若配對用戶均成功接收了用戶信息,則可以確定配對的用戶均在線,接下來配對的用戶將依據(jù)接收的用戶信息進行視頻連接,若有一方?jīng)]有成功接收用戶信息,則需要重新進行匹配,此時,步驟s101中,在用戶匹配和視頻通話的過程中,在接收到設定消息或進行設定操作后,更新相應用戶的狀態(tài),還包括:
當將用戶信息發(fā)送給與之匹配的用戶成功后;將該匹配涉及的用戶的狀態(tài)更新為連接狀態(tài);當將用戶信息發(fā)送給與之匹配的用戶失敗后,將該匹配涉及的用戶的狀態(tài)更新為匹配中狀態(tài)。
進一步,對于視頻連接成功的用戶,可將其狀態(tài)更新為通話狀態(tài),對于視頻連接失敗的用戶,可以對其重新進行匹配,此時,步驟s101中,在用戶匹配和視頻通話的過程中,在接收到設定消息或進行設定操作后,更新相應用戶的狀態(tài),還包括:
接收到連接狀態(tài)的用戶的視頻連接建立成功消息后,將該用戶的狀態(tài)更新為通話狀態(tài);
接收到連接狀態(tài)的用戶的視頻連接建立失敗消息后,將該用戶的狀態(tài)更新為匹配中狀態(tài)。
進一步,在視頻通話過程中,對于主動掛斷的用戶,暫時不想進行視頻通話的可能性較大,可以將其狀態(tài)設置為空閑狀態(tài),對于被掛斷的用戶,想繼續(xù)進行視頻通話的可能性較大,可以直接為其繼續(xù)匹配用戶,此時,步驟s101中,在用戶匹配和視頻通話的過程中,在接收到設定消息或進行設定操作后,更新相應用戶的狀態(tài),還包括:
接收到通話狀態(tài)的用戶上報的掛斷消息后,將該用戶的狀態(tài)更新為空閑狀態(tài);
接收到通話狀態(tài)的用戶上報的被掛斷消息后,將該用戶的狀態(tài)更新為匹配中狀態(tài)。
下面通過具體實施例對本發(fā)明實施例提供的視頻社交中用戶狀態(tài)處理方法進行說明:
首先定義用戶發(fā)起視頻到視頻結(jié)束中用戶可能所處的狀態(tài)集合s={s1,s2,s3,s4,s5},s中一共包括五個狀態(tài),其定義分別如下:
s1:空閑狀態(tài),打開app上線后的默認狀態(tài),用戶沒有發(fā)起任何視頻操作;
s2:匹配中狀態(tài),用戶點擊匹配按鈕以尋找待匹配用戶;
s3:匹配完成狀態(tài),系統(tǒng)為該用戶已找到待匹配的用戶;
s4:連接狀態(tài),該用戶和待匹配用戶狀態(tài)試圖進行p2p(點對點)連接;
s5:通話狀態(tài),連接成功后兩用戶進入通話過程。
如圖2所示,本發(fā)明實施例提供的視頻社交中用戶狀態(tài)處理方法包括:
步驟s201、接收到用戶的上線消息;
步驟s202、將用戶的狀態(tài)置為s1;
步驟s203、接收到用戶發(fā)送的匹配請求;
該請求可以是用戶點擊app中的視頻按鈕或者其它相應按鈕發(fā)起的;
步驟s204、將該用戶的狀態(tài)置為s2;
步驟s205、將用戶的id加入到匹配隊列q中。
步驟s206、根據(jù)隊列q中存在的所有待匹配用戶,利用匹配算法將其以兩人為單位進行匹配,產(chǎn)生匹配用戶對m1,m2,m3……mn,其中,每個匹配用戶對m中均包含兩個待匹配用戶的id;
步驟s207、針對所有用戶對m中的用戶,將這些用戶的狀態(tài)由s2置為s3;
步驟s208、對于匹配成功的每個用戶對,利用其用戶id分別獲取兩個用戶的用戶信息,該用戶信息可以包括用戶名、頭像、年齡、性別等信息;
步驟s209、將兩位用戶的用戶信息分別發(fā)送給與之配對的用戶;
步驟s210、判斷用戶信息是否下發(fā)成功,如果是,執(zhí)行步驟s211,否則執(zhí)行步驟s204;
步驟s211、將用戶的狀態(tài)由s3置為s4;
步驟s212、判斷是否接收到視頻連接建立成功消息,如果是,執(zhí)行步驟s213,否則執(zhí)行步驟s204;
通常情況下,客戶端在接收到所匹配的用戶的用戶信息后,會根據(jù)該用戶信息發(fā)起視頻通話,若成功建立了視頻通話,則向服務器上報視頻連接建立成功消息,若建立視頻通話失敗,則向服務器上報視頻連接建立失敗消息,通常情況下,所匹配的兩個用戶所上報的消息是一致的,如果接收到不一致的情況,可以按照視頻連接建立失敗處理,或者根據(jù)實際情況進行其它處理;
步驟s213、將用戶的狀態(tài)由s4置為s5;
步驟s214、判斷是否接收到通話狀態(tài)的用戶上報的掛斷消息,如果是,執(zhí)行步驟s202,否則執(zhí)行步驟s215;
步驟s215、判斷是否接收到通話狀態(tài)的用戶上報的被掛斷消息,如果是,執(zhí)行步驟s204,否則執(zhí)行步驟s214。
通過這樣一套完整的狀態(tài),可以確保每個用戶都穩(wěn)定的處于一個特定的狀態(tài)中,并且該狀態(tài)與用戶端的狀態(tài)具有一致性;同時,通過維護用戶的狀態(tài)在提高系統(tǒng)的穩(wěn)定性和一致性的同時,不需要頻繁進行事件及時間的記錄和查找,系統(tǒng)開銷也較小。
應當注意,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結(jié)果。相反,流程圖中描繪的步驟可以改變執(zhí)行順序。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或?qū)⒁粋€步驟分解為多個步驟執(zhí)行。
本發(fā)明實施例還相應提供一種視頻社交中用戶狀態(tài)處理裝置,如圖3所示,該裝置包括:
狀態(tài)更新單元301,用于在用戶匹配和視頻通話的過程中,響應于接收到設定消息或進行設定操作,更新相應用戶的狀態(tài);以及
操作單元302,用于針對用戶當前的狀態(tài)進行相應操作。
進一步,狀態(tài)更新單元301具體用于:
接收到用戶的上線消息后,將該用戶的狀態(tài)更新為空閑狀態(tài)。
進一步,狀態(tài)更新單元301還用于:
接收到空閑狀態(tài)的用戶的匹配請求后,將該用戶的狀態(tài)更新為匹配中狀態(tài);
此時,操作單元302具體用于:
對匹配中狀態(tài)的用戶進行匹配。
更進一步,操作單元302對匹配中狀態(tài)的用戶進行匹配,具體包括:
將匹配中狀態(tài)的用戶加入到匹配隊列中;
按照預先設定的匹配算法,對匹配隊列中的用戶進行配對。
優(yōu)選的,狀態(tài)更新單元301還用于:
將找到匹配用戶的用戶的狀態(tài)更新為匹配完成狀態(tài);
此時,操作單元302還用于:
對于匹配完成狀態(tài)的用戶,將用戶信息發(fā)送給與之匹配的用戶。
進一步,狀態(tài)更新單元301還用于:
當將用戶信息發(fā)送給與之匹配的用戶成功后,將該匹配涉及的用戶的狀態(tài)更新為連接狀態(tài);當將用戶信息發(fā)送給與之匹配的用戶失敗后,將該匹配涉及的用戶的狀態(tài)更新為匹配中狀態(tài)。
優(yōu)選的,狀態(tài)更新單元301還用于:
接收到連接狀態(tài)的用戶的視頻連接建立成功消息后,將該用戶的狀態(tài)更新為通話狀態(tài);
接收到連接狀態(tài)的用戶的視頻連接建立失敗消息后,將該用戶的狀態(tài)更新為匹配中狀態(tài)。
進一步,狀態(tài)更新單元301還用于:
接收到通話狀態(tài)的用戶上報的掛斷消息后,將該用戶的狀態(tài)更新為空閑狀態(tài);
接收到通話狀態(tài)的用戶上報的被掛斷消息后,將該用戶的狀態(tài)更新為匹配中狀態(tài)。
應當理解,該裝置中記載的諸單元或模塊與參考圖1描述的方法中的各個步驟相對應。由此,上文針對方法描述的操作和特征同樣適用于該裝置及其中包含的單元,在此不再贅述。該裝置可以預先實現(xiàn)在電子設備的瀏覽器或其他安全應用中,也可以通過下載等方式而加載到電子設備的瀏覽器或其安全應用中。該裝置中的相應單元可以與電子設備中的單元相互配合以實現(xiàn)本申請實施例的方案。
下面參考圖4,其示出了適于用來實現(xiàn)本申請實施例的終端設備或服務器的計算機系統(tǒng)的結(jié)構(gòu)示意圖。
如圖4所示,計算機系統(tǒng)包括中央處理單元(cpu)401,其可以根據(jù)存儲在只讀存儲器(rom)402中的程序或者從存儲部分408加載到隨機訪問存儲器(ram)403中的程序而執(zhí)行各種適當?shù)膭幼骱吞幚怼T趓am403中,還存儲有系統(tǒng)操作所需的各種程序和數(shù)據(jù)。cpu401、rom402以及ram403通過總線404彼此相連。輸入/輸出(i/o)接口405也連接至總線404。
以下部件連接至i/o接口405:包括鍵盤、鼠標等的輸入部分406;包括諸如陰極射線管(crt)、液晶顯示器(lcd)等以及揚聲器等的輸出部分407;包括硬盤等的存儲部分408;以及包括諸如lan卡、調(diào)制解調(diào)器等的網(wǎng)絡接口卡的通信部分409。通信部分409經(jīng)由諸如因特網(wǎng)的網(wǎng)絡執(zhí)行通信處理。驅(qū)動器410也根據(jù)需要連接至i/o接口405??刹鹦督橘|(zhì)411,諸如磁盤、光盤、磁光盤、半導體存儲器等等,根據(jù)需要安裝在驅(qū)動器410上,以便于從其上讀出的計算機程序根據(jù)需要被安裝入存儲部分408。
特別地,根據(jù)本公開的實施例,上文參考圖1描述的過程可以被實現(xiàn)為計算機軟件程序。例如,本公開的實施例包括一種計算機程序產(chǎn)品,其包括有形地包含在機器可讀介質(zhì)上的計算機程序,所述計算機程序包含用于執(zhí)行圖1的方法的程序代碼。在這樣的實施例中,該計算機程序可以通過通信部分409從網(wǎng)絡上被下載和安裝,和/或從可拆卸介質(zhì)411被安裝。
附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應當注意,在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
描述于本申請實施例中所涉及到的單元或模塊可以通過軟件的方式實現(xiàn),也可以通過硬件的方式來實現(xiàn)。所描述的單元或模塊也可以設置在處理器中,例如,可以描述為:一種處理器包括xx單元、yy單元以及zz單元。其中,這些單元或模塊的名稱在某種情況下并不構(gòu)成對該單元或模塊本身的限定,例如,xx單元還可以被描述為“用于xx的單元”。
作為另一方面,本申請還提供了一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)可以是上述實施例中所述裝置中所包含的計算機可讀存儲介質(zhì);也可以是單獨存在,未裝配入設備中的計算機可讀存儲介質(zhì)。計算機可讀存儲介質(zhì)存儲有一個或者一個以上程序,所述程序被一個或者一個以上的處理器用來執(zhí)行描述于本申請的方法。
以上描述僅為本申請的較佳實施例以及對所運用技術原理的說明。本領域技術人員應當理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術特征的特定組合而成的技術方案,同時也應涵蓋在不脫離所述發(fā)明構(gòu)思的情況下,由上述技術特征或其等同特征進行任意組合而形成的其它技術方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術特征進行互相替換而形成的技術方案。