視頻監(jiān)控系統(tǒng)的中央操作平臺或者大型門戶網(wǎng)站的服務(wù)器等能夠為登錄到該監(jiān)控平臺的客戶端提供相應(yīng)的信息服務(wù)。而客戶端可以為B/S模式客戶端、C/S模式客戶端以及移動終端客戶端中的一種或多種;當(dāng)然還可以是其他可以登錄到監(jiān)控平臺的應(yīng)用,本發(fā)明的實施例對此不做限制。
[0033]下面以視頻監(jiān)控系統(tǒng)為例,對本發(fā)明的客戶端接入方法進行詳細說明,但本發(fā)明提供的客戶端接入方法不限于此。
[0034]具體而言,為了實現(xiàn)以統(tǒng)一接口支持不同類型客戶端接入,首先需要確定接口類型。在上述三種主要的客戶端類型中,B/S模式客戶端對接口類型要求最為嚴(yán)格,因為B/S模式采用的是瀏覽器作為客戶端,而瀏覽器和服務(wù)端之間,需要使用HTTP協(xié)議接口。因此,作為要將各種客戶端都接入的同一類型的接口,也要是基于HTTP協(xié)議的接口。那么也就需要將C/S模式的客戶端通過HTTP協(xié)議接口來實現(xiàn)。
[0035]監(jiān)控平臺是一個分布式的系統(tǒng),相應(yīng)的,客戶端的接入也需要分布式的接入,這就涉及到業(yè)務(wù)分發(fā)。常見針對HTTP協(xié)議的分發(fā)方式,都是基于消息的分發(fā),比如采用nginx的方案等。所有的消息都要經(jīng)由監(jiān)控平臺中的一個專門負(fù)責(zé)分發(fā)消息的分發(fā)模塊(如nginx,即“engine x”,一種高性能的HTTP和反向代理服務(wù)器)來轉(zhuǎn)發(fā),因此分發(fā)模塊的負(fù)擔(dān)將很重,很可能成為整個系統(tǒng)的性能瓶頸。為了避免上述問題,本發(fā)明的實施例中,基于HTTP協(xié)議的接口打破了原有的登錄和消息轉(zhuǎn)發(fā)模式,客戶端只在登錄的時候,到分發(fā)模塊獲取其接入的服務(wù)節(jié)點的地址,后續(xù)消息交互就直接在客戶端與其接入的服務(wù)節(jié)點之間進行,不再通過分發(fā)模塊分發(fā),從而使C/S模式客戶端、B/S模式客戶端、移動終端客戶端等全部都可以通過基于HTTP協(xié)議的接口快速高效地獲得相應(yīng)的信息服務(wù),從而有效避免了不同接口帶來的用戶感受不一致的問題。
[0036]在基于超文本傳輸協(xié)議HTTP的接口中,用戶登錄請求中包括各種登錄參數(shù),如用戶名、密碼等,無論對于C/S模式客戶端、B/S模式客戶端還是移動終端客戶端,這些登錄參數(shù)都可以通過超文本傳輸協(xié)議的統(tǒng)一資源定位符URL攜帶。
[0037]為了加強安全性,可選的,在本發(fā)明的一個實施例中,用戶登錄請求中還可包括驗證碼信息,一般在使用B/S模式客戶端時較常見,這種情況下,步驟S12中,根據(jù)所述用戶登錄請求確定所述用戶對應(yīng)的服務(wù)節(jié)點具體可包括:
[0038]對所述驗證碼信息進行校驗;
[0039]在通過校驗的情況下,根據(jù)所述用戶登錄請求確定所述用戶對應(yīng)的服務(wù)節(jié)點;
[0040]這樣,可以對用戶的身份進行進一步驗證核實,只有登錄參數(shù)中的驗證碼信息與監(jiān)控平臺中預(yù)設(shè)的驗證信息相符時,才會去確定該用戶對應(yīng)的服務(wù)節(jié)點的地址,否則無需計算對應(yīng)的服務(wù)節(jié)點,從而既加強了安全性,又節(jié)省了系統(tǒng)資源。
[0041]相應(yīng)的,步驟S13中,指示所述客戶端登錄到所述服務(wù)節(jié)點具體可包括:指示所述客戶端重定向到所述服務(wù)節(jié)點。
[0042]本實施例中,由于登錄主頁是由監(jiān)控平臺的分發(fā)模塊提供的,因此如果要支持動態(tài)驗證碼,該驗證碼也只能由分發(fā)模塊生成,后續(xù)的校驗也只能由分發(fā)模塊完成。因此,在接收到用戶登錄請求之后,監(jiān)控平臺的分發(fā)模塊先對該驗證碼進行驗證,如果通過驗證,監(jiān)控平臺會觸發(fā)該用戶登錄到對應(yīng)的服務(wù)節(jié)點上。
[0043]相應(yīng)的,如圖2所示,本發(fā)明的實施例還提供一種客戶端接入方法,基于客戶端,該方法可包括:
[0044]S21,通過同一類型的接口向監(jiān)控平臺發(fā)送由客戶端發(fā)起的用戶登錄請求;
[0045]S22,根據(jù)所述監(jiān)控平臺的指示,登錄到對應(yīng)的服務(wù)節(jié)點,以與所述服務(wù)節(jié)點進行通信。
[0046]本發(fā)明的實施例提供的客戶端接入方法,各種類型的客戶端都能夠通過同一類型的接口向監(jiān)控平臺發(fā)送用戶登錄請求,并能根據(jù)所述監(jiān)控平臺的指示登錄到對應(yīng)的服務(wù)節(jié)點,從而與所述服務(wù)節(jié)點進行通信,這樣,不同類型的客戶端都能以同樣的接口接入并找到對應(yīng)的服務(wù)節(jié)點,無需經(jīng)過其他設(shè)備進行消息轉(zhuǎn)發(fā)即可直接與服務(wù)節(jié)點進行通信,從而避免了由于客戶端與監(jiān)控平臺之間因接口不同而導(dǎo)致的用戶感知不一致的問題,大大提高了用戶體驗。
[0047]本發(fā)明實施例中,只要是能夠兼容B/S模式客戶端、C/S模式客戶端或移動終端客戶端等多種客戶端的接口類型,都可以實現(xiàn)本發(fā)明,本發(fā)明的實施例對此不作限制。
[0048]可選的,在上述三種主要的客戶端類型中,B/S模式客戶端對接口類型要求最為嚴(yán)格,因為B/S模式采用的是瀏覽器作為客戶端,而瀏覽器和服務(wù)端之間,需要使用HTTP協(xié)議接口。因此,作為要將各種客戶端都接入的同一類型的接口,也要是基于HTTP協(xié)議的接口。
[0049]在基于超文本傳輸協(xié)議HTTP的接口中,用戶登錄請求中包括各種登錄參數(shù),如用戶名、密碼等,無論對于C/S模式客戶端、B/S模式客戶端還是移動終端客戶端,這些登錄參數(shù)都可以通過超文本傳輸協(xié)議的統(tǒng)一資源定位符URL攜帶。
[0050]下面通過具體的實施例,對本發(fā)明提供的客戶端接入方法進行詳細說明。
[0051]如圖3所示,在本發(fā)明的一個實施例中,對于B/S模式的客戶端,其接入方法包括如下步驟:
[0052]S101.客戶端瀏覽器訪問分發(fā)模塊的登錄主頁,該登錄主頁上需要用戶輸入用戶名和密碼信息;
[0053]S102.用戶輸入用戶名和密碼后點擊登錄,此時客戶端瀏覽器發(fā)送用戶登錄到監(jiān)控平臺的分發(fā)模塊,該請求中攜帶用戶信息;
[0054]S103.分發(fā)模塊根據(jù)用戶信息計算出該用戶歸屬的服務(wù)節(jié)點;
[0055]S104.分發(fā)模塊將服務(wù)節(jié)點的地址信息返回給客戶端瀏覽器;
[0056]S105.客戶端瀏覽器提交用戶登錄請求到服務(wù)節(jié)點;
[0057]S106.服務(wù)節(jié)點對用戶信息進行鑒權(quán),決定是否登錄成功;
[0058]S107.服務(wù)節(jié)點返回登錄后的主頁面給客戶端瀏覽器。
[0059]如圖4所示,在本發(fā)明的另一個實施例中,監(jiān)控平臺對用戶登錄具有動態(tài)碼校驗功能,本實施例中,B/S客戶端的接入方法可包括如下步驟:
[0060]S201.客戶端瀏覽器訪問分發(fā)模塊的登錄主頁,該登錄主頁上需要用戶輸入用戶名、密碼以及驗證碼信息;
[0061]S202.用戶輸入用戶名、密碼及驗證碼后點擊登錄,此時客戶端瀏覽器發(fā)送用戶登錄請求到分發(fā)模塊;
[0062]S203.分發(fā)模塊對驗證碼信息進行校驗;
[0063]S204.如果驗證碼校驗成功,則分發(fā)模塊根據(jù)用戶登錄請求中的用戶信息計算出該用戶歸屬的服務(wù)節(jié)點;
[0064]S205.分發(fā)模塊返回自刷新頁面到客戶端瀏覽器進行重定向,將客戶端瀏覽器重定向到服務(wù)節(jié)點;
[0065]S206.通過重定向的觸發(fā),客戶端瀏覽器將用戶登錄請求提交到服務(wù)節(jié)點;
[0066]S207.服務(wù)節(jié)點對于用戶登錄請求中的驗證碼信息,發(fā)送消息到分發(fā)模塊去進行校驗;
[0067]S208.如果驗證碼校驗成功,則服務(wù)節(jié)點繼續(xù)對用戶信息進行鑒權(quán),決定是否登錄成功;
[0068]S209.服務(wù)節(jié)點返回登錄后的主頁面給客戶端瀏覽器。
[0069]以上兩種B/S模式客戶端接入的【具體實施方式】,其不同點在于是否支持動態(tài)驗證碼。兩種實施方式相比較而言,第一種實施方式的優(yōu)點在于實現(xiàn)簡單,第二種實施方式的優(yōu)點在于能夠支持動態(tài)驗證碼,從而可以防范暴力破解。
[0070]如圖5所示,在本發(fā)明的另一個實施例中,對于C/S模式的客戶端和移動終端客戶端,其接入方法具體可包括:
[0071]S301.用戶在客戶端上輸入用戶名和密碼,然后點擊登錄,此時客戶端發(fā)送用戶登錄請求到分發(fā)模塊,該請求中攜帶用戶信息;
[0072]S302.分發(fā)模塊根據(jù)用戶信息計算出該用戶歸