本發(fā)明涉及通信領(lǐng)域,特別涉及一種移動(dòng)終端的狀態(tài)更新方法及裝置。
背景技術(shù):
在政府部門或企業(yè)等場(chǎng)景常常用到調(diào)度臺(tái),通過調(diào)度臺(tái)調(diào)度和記錄終端的狀態(tài)。例如,在交通指揮中心中可以布置調(diào)度臺(tái),當(dāng)交警在上班執(zhí)勤時(shí)配帶移動(dòng)終端,調(diào)度臺(tái)將記錄的該移動(dòng)終端對(duì)應(yīng)的離線狀態(tài)更新為在線狀態(tài),當(dāng)交警下班時(shí),調(diào)度臺(tái)將記錄的在線狀態(tài)更新為離線狀態(tài)。
目前可以通過如下方法更新移動(dòng)終端的狀態(tài),包括:移動(dòng)終端處于在線狀態(tài)時(shí)會(huì)周期性地向服務(wù)器上報(bào)其當(dāng)前位置,例如每隔30秒上報(bào)其位置。調(diào)度臺(tái)周期性地向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器接收該請(qǐng)求后,獲取各移動(dòng)終端最近一次上報(bào)位置的上報(bào)時(shí)間,確定上報(bào)時(shí)間與當(dāng)前時(shí)間之間的時(shí)間差在預(yù)設(shè)閾值的移動(dòng)終端,將確定的移動(dòng)終端的狀態(tài)設(shè)置為在線狀態(tài),將其他移動(dòng)終端的狀態(tài)設(shè)置為離線狀態(tài),向調(diào)度臺(tái)發(fā)送各移動(dòng)終端的狀態(tài)。調(diào)度臺(tái)接收各移動(dòng)終端的狀態(tài),根據(jù)接收的各移動(dòng)終端的狀態(tài)分別更新本地記錄的各移動(dòng)終端的狀態(tài)。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
目前調(diào)度臺(tái)周期性地向服務(wù)器請(qǐng)求移動(dòng)終端的狀態(tài),如果周期長度較長,調(diào)度臺(tái)更新移動(dòng)終端狀態(tài)的實(shí)時(shí)性較低,如果周期長度較短,調(diào)度臺(tái)向服務(wù)器頻繁請(qǐng)求,增加服務(wù)器的壓力。
技術(shù)實(shí)現(xiàn)要素:
為了提高調(diào)度臺(tái)更新移動(dòng)終端狀態(tài)的實(shí)時(shí)性以及減小服務(wù)器的壓力,本發(fā)明提供了一種移動(dòng)終端的狀態(tài)更新方法及裝置。所述技術(shù)方案如下:
第一方面,本申請(qǐng)?zhí)峁┝艘环N移動(dòng)終端的狀態(tài)更新方法,所述方法包括:
服務(wù)器接收移動(dòng)終端發(fā)送的連接請(qǐng)求消息,所述連接請(qǐng)求消息攜帶所述移動(dòng)終端的移動(dòng)終端賬號(hào);
所述服務(wù)器根據(jù)所述移動(dòng)終端的終端賬號(hào)建立與所述移動(dòng)終端之間的websocket網(wǎng)頁套接字連接,設(shè)置所述移動(dòng)終端的狀態(tài)信息為在線狀態(tài);
所述服務(wù)器根據(jù)所述移動(dòng)終端賬號(hào),獲取管理所述移動(dòng)終端的調(diào)度員賬號(hào);
所述服務(wù)器向所述調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第一更新消息,所述第一更新消息包括所述移動(dòng)終端賬號(hào)和所述移動(dòng)終端的狀態(tài)信息,所述第一更新消息用于所述調(diào)度臺(tái)更新所述移動(dòng)終端的狀態(tài)信息。
可選的,所述服務(wù)器根據(jù)所述移動(dòng)終端賬號(hào),獲取管理所述移動(dòng)終端的調(diào)度員賬號(hào),包括:
所述服務(wù)器根據(jù)所述移動(dòng)終端賬號(hào),從移動(dòng)終端賬號(hào)與調(diào)度員賬號(hào)的對(duì)應(yīng)關(guān)系中獲取對(duì)應(yīng)的調(diào)度員賬號(hào);
所述服務(wù)器將所述獲取的調(diào)度員賬號(hào)確定為管理所述移動(dòng)終端的調(diào)度員賬號(hào)。
可選的,所述設(shè)置所述移動(dòng)終端的狀態(tài)信息為在線狀態(tài)之后,還包括:
所述服務(wù)器根據(jù)所述移動(dòng)終端賬號(hào),在移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中將所述移動(dòng)終端的狀態(tài)信息更新為在線狀態(tài)。
可選的,所述方法還包括:
當(dāng)檢測(cè)到所述服務(wù)器與所述移動(dòng)終端之間的websocket連接斷開,所述服務(wù)器將所述移動(dòng)終端的狀態(tài)信息設(shè)置為離線狀態(tài),獲取用于管理所述移動(dòng)終端的調(diào)度員賬號(hào),向所述調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第二更新消息,所述第二更新消息包括所述移動(dòng)終端賬號(hào)和所述移動(dòng)終端的狀態(tài)信息,所述第二更新消息用于所述調(diào)度臺(tái)更新所述移動(dòng)終端的狀態(tài)信息。
可選的,所述所述服務(wù)器將所述移動(dòng)終端的狀態(tài)信息設(shè)置為離線狀態(tài)之后,還包括:
所述服務(wù)器根據(jù)所述移動(dòng)終端賬號(hào),在移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中將所述移動(dòng)終端的狀態(tài)信息更新為離線狀態(tài)。
第二方面,本申請(qǐng)?zhí)峁┝艘环N移動(dòng)終端的狀態(tài)更新裝置,其特征在于,所述裝置包括:
接收模塊,用于接收移動(dòng)終端發(fā)送的連接請(qǐng)求消息,所述連接請(qǐng)求消息攜帶所述移動(dòng)終端的移動(dòng)終端賬號(hào);
建立模塊,用于根據(jù)所述移動(dòng)終端的終端賬號(hào)建立與所述移動(dòng)終端之間的websocket網(wǎng)頁套接字連接,設(shè)置所述移動(dòng)終端的狀態(tài)信息為在線狀態(tài);
獲取模塊,用于根據(jù)所述移動(dòng)終端賬號(hào),獲取管理所述移動(dòng)終端的調(diào)度員賬號(hào);
發(fā)送模塊,用于向所述調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第一更新消息,所述第一更新消息包括所述移動(dòng)終端賬號(hào)和所述移動(dòng)終端的狀態(tài)信息,所述第一更新消息用于所述調(diào)度臺(tái)更新所述移動(dòng)終端的狀態(tài)信息。
可選的,所述獲取模塊包括:
獲取單元,用于根據(jù)所述移動(dòng)終端賬號(hào),從移動(dòng)終端賬號(hào)與調(diào)度員賬號(hào)的對(duì)應(yīng)關(guān)系中獲取對(duì)應(yīng)的調(diào)度員賬號(hào);
確定單元,用于將所述獲取的調(diào)度員賬號(hào)確定為管理所述移動(dòng)終端的調(diào)度員賬號(hào)。
可選的,所述裝置還包括:
第一更新模塊,用于根據(jù)所述移動(dòng)終端賬號(hào),在移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中將所述移動(dòng)終端的狀態(tài)信息更新為在線狀態(tài)。
可選的,所述發(fā)送模塊,還用于當(dāng)檢測(cè)到所述裝置與所述移動(dòng)終端之間的websocket連接斷開,將所述移動(dòng)終端的狀態(tài)信息設(shè)置為離線狀態(tài),獲取用于管理所述移動(dòng)終端的調(diào)度員賬號(hào),向所述調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第二更新消息,所述第二更新消息包括所述移動(dòng)終端賬號(hào)和所述移動(dòng)終端的狀態(tài)信息,所述第二更新消息用于所述調(diào)度臺(tái)更新所述移動(dòng)終端的狀態(tài)信息。
可選的,所述裝置還包括:
第二更新模塊,用于根據(jù)所述移動(dòng)終端賬號(hào),在移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中將所述移動(dòng)終端的狀態(tài)信息更新為離線狀態(tài)。
第三方面,本申請(qǐng)?zhí)峁┝艘环N計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括:
用于接收移動(dòng)終端發(fā)送的連接請(qǐng)求消息的指令,所述連接請(qǐng)求消息攜帶所述移動(dòng)終端的移動(dòng)終端賬號(hào);
用于根據(jù)所述移動(dòng)終端的終端賬號(hào)建立與所述移動(dòng)終端之間的websocket網(wǎng)頁套接字連接,設(shè)置所述移動(dòng)終端的狀態(tài)信息為在線狀態(tài)的指令;
用于根據(jù)所述移動(dòng)終端賬號(hào),獲取管理所述移動(dòng)終端的調(diào)度員賬號(hào)的指令;
用于向所述調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第一更新消息的指令,所述第一更新消息包括所述移動(dòng)終端賬號(hào)和所述移動(dòng)終端的狀態(tài)信息,所述第一更新消息用于所述調(diào)度臺(tái)更新所述移動(dòng)終端的狀態(tài)信息。
本發(fā)明提供的技術(shù)方案的有益效果是:
當(dāng)建立與移動(dòng)終端之間的websocket連接時(shí),設(shè)置移動(dòng)終端的狀態(tài)信息,向調(diào)度臺(tái)發(fā)送包括該狀態(tài)信息的第一更新消息,觸發(fā)調(diào)度臺(tái)對(duì)移動(dòng)終端的狀態(tài)信息進(jìn)行更新,這樣提高調(diào)度臺(tái)更新移動(dòng)終端狀態(tài)的實(shí)時(shí)性。由于不需要調(diào)度臺(tái)周期性請(qǐng)求服務(wù)器,減小了服務(wù)器的壓力。
附圖說明
圖1是本發(fā)明實(shí)施例1提供的一種調(diào)度系統(tǒng)結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例2提供的一種移動(dòng)終端的狀態(tài)更新方法流程圖;
圖3是本發(fā)明實(shí)施例3提供的一種移動(dòng)終端的狀態(tài)更新方法流程圖;
圖4是本發(fā)明實(shí)施例4提供的一種移動(dòng)終端的狀態(tài)更新方法裝置結(jié)構(gòu)示意圖;
圖5是本發(fā)明實(shí)施例5提供的一種移動(dòng)終端的狀態(tài)更新方法裝置結(jié)構(gòu)示意圖;
圖6是本發(fā)明實(shí)施例6提供的一種移動(dòng)終端的狀態(tài)更新方法裝置結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
實(shí)施例1
參見圖1,本發(fā)明實(shí)施例提供了一種調(diào)度系統(tǒng),該調(diào)度系統(tǒng)包括:
調(diào)度臺(tái)1、服務(wù)器2和至少一個(gè)移動(dòng)終端3,該調(diào)度臺(tái)1與服務(wù)器2之間建立有websocket(網(wǎng)頁套接字)連接,該至少一個(gè)移動(dòng)終端3中的每個(gè)移動(dòng)終端3與服務(wù)器2之間建立有websocket連接。
調(diào)度臺(tái)1的數(shù)目可以為一個(gè)或多個(gè),在啟動(dòng)后或登錄服務(wù)器2時(shí)建立與服務(wù)器之間的websocket連接。
調(diào)度臺(tái)1還可以獲取調(diào)度員輸入的調(diào)度員賬號(hào)以及該調(diào)度員賬號(hào)可管理的至少一個(gè)移動(dòng)終端賬號(hào),將該調(diào)度員賬號(hào)和該至少一個(gè)移動(dòng)終端賬號(hào)對(duì)應(yīng)保存在調(diào)度員賬號(hào)與移動(dòng)終端賬號(hào)的對(duì)應(yīng)關(guān)系中。還根據(jù)該至少一個(gè)移動(dòng)終端賬號(hào)中的每個(gè)移動(dòng)終端賬號(hào),從移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中獲取每個(gè)移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息,顯示每個(gè)移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息。
移動(dòng)終端3在啟動(dòng)后或登錄服務(wù)器時(shí),可以建立與服務(wù)器之間websocket連接。服務(wù)器2可以將該移動(dòng)終端3的狀態(tài)信息設(shè)置為在線狀態(tài),向管理該移動(dòng)終端3的調(diào)度臺(tái)發(fā)送第一更新消息,第一更新消息包括該移動(dòng)終端3的移動(dòng)終端賬號(hào)和狀態(tài)信息,使調(diào)度臺(tái)3將本地保存的該移動(dòng)終端3的狀態(tài)信息更新為第一更新消息包括的在線狀態(tài)。
服務(wù)器2還可以從移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中該移動(dòng)終端3的移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息更新為在線狀態(tài)。
移動(dòng)終端3在退出登錄時(shí),服務(wù)器2可以將移動(dòng)終端3的狀態(tài)信息設(shè)置為離線狀態(tài),向管理該移動(dòng)終端的調(diào)度臺(tái)1發(fā)送第二更新消息,第二更新消息包括該移動(dòng)終端3的狀態(tài)信息和移動(dòng)終端賬號(hào)。使調(diào)度臺(tái)3將本地保存的該移動(dòng)終端3的狀態(tài)信息更新為第二更新消息包括的離線狀態(tài)。
實(shí)施例2
參見圖2,本發(fā)明實(shí)施例提供了一種移動(dòng)終端的狀態(tài)更新方法,所述方法包括:
步驟201:服務(wù)器接收移動(dòng)終端發(fā)送的連接請(qǐng)求消息,該連接請(qǐng)求消息攜帶移動(dòng)終端的移動(dòng)終端賬號(hào)。
步驟202:服務(wù)器根據(jù)該連接標(biāo)識(shí)信息建立與移動(dòng)終端之間的websocket連接,設(shè)置移動(dòng)終端的狀態(tài)信息為在線狀態(tài)。
步驟203:服務(wù)器根據(jù)該移動(dòng)終端賬號(hào),獲取管理移動(dòng)終端的調(diào)度員賬號(hào)。
步驟204:服務(wù)器向該調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第一更新消息,第一更新消息包括移動(dòng)終端賬號(hào)和移動(dòng)終端的狀態(tài)信息,第一更新消息用于調(diào)度臺(tái)更新移動(dòng)終端的狀態(tài)信息。
在本發(fā)明實(shí)施例中,服務(wù)器當(dāng)建立與移動(dòng)終端之間的websocket連接時(shí),設(shè)置移動(dòng)終端的狀態(tài)信息,向調(diào)度臺(tái)發(fā)送包括該狀態(tài)信息的第一更新消息,觸發(fā)調(diào)度臺(tái)對(duì)移動(dòng)終端的狀態(tài)信息進(jìn)行更新,這樣提高調(diào)度臺(tái)更新移動(dòng)終端狀態(tài)的實(shí)時(shí)性。由于不需要調(diào)度臺(tái)周期性請(qǐng)求服務(wù)器,減小了服務(wù)器的壓力。
實(shí)施例3
參見圖3,本發(fā)明實(shí)施例提供了一種移動(dòng)終端的狀態(tài)更新方法,該方法可以應(yīng)用于如圖1所示的調(diào)度系統(tǒng),包括:
步驟301:調(diào)度臺(tái)獲取調(diào)度員賬號(hào)和該調(diào)度員賬號(hào)可管理的至少一個(gè)移動(dòng)終端賬號(hào)。
調(diào)度臺(tái)啟動(dòng)后或登錄服務(wù)器時(shí),調(diào)度員可以在調(diào)度臺(tái)上輸入調(diào)度員賬號(hào)和該調(diào)度員賬號(hào)可管理的至少一個(gè)移動(dòng)終端賬號(hào)。相應(yīng)的,調(diào)度臺(tái)直接獲取調(diào)度員輸入的該調(diào)度員賬號(hào)和該調(diào)度員賬號(hào)可管理的至少一個(gè)移動(dòng)終端賬號(hào)。
該調(diào)度員賬號(hào)可以用于標(biāo)識(shí)該調(diào)度臺(tái),移動(dòng)終端的移動(dòng)終端賬號(hào)可以用于標(biāo)識(shí)該移動(dòng)終端。
步驟302:調(diào)度臺(tái)保存該調(diào)度員賬號(hào)和該至少一個(gè)移動(dòng)終端賬號(hào)之間的對(duì)應(yīng)關(guān)系,以及獲取每個(gè)移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息。
具體地,調(diào)度臺(tái)將該調(diào)度員賬號(hào)和該至少一個(gè)移動(dòng)終端賬號(hào)對(duì)應(yīng)保存在數(shù)據(jù)庫中的調(diào)度員賬號(hào)與移動(dòng)終端賬號(hào)之間的對(duì)應(yīng)關(guān)系中;根據(jù)該至少一個(gè)移動(dòng)終端賬號(hào)中的每個(gè)移動(dòng)終端賬號(hào),從數(shù)據(jù)庫中的移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中獲取每個(gè)移動(dòng)終端賬號(hào)對(duì)應(yīng)的移動(dòng)終端的狀態(tài)信息。
該數(shù)據(jù)庫可以位于服務(wù)器上。移動(dòng)終端的狀態(tài)信息可以為在線狀態(tài)或離線狀態(tài)。調(diào)度臺(tái)獲取到每個(gè)移動(dòng)終端賬號(hào)對(duì)應(yīng)的移動(dòng)終端的狀態(tài)信息后,可以在本地保存每個(gè)移動(dòng)終端賬號(hào)與每個(gè)移動(dòng)終端賬號(hào)對(duì)應(yīng)的移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系,向調(diào)度員顯示每個(gè)移動(dòng)終端的狀態(tài)信息。
移動(dòng)終端的狀態(tài)可能隨時(shí)都在變化,所以調(diào)度臺(tái)需要實(shí)時(shí)獲取到狀態(tài)發(fā)生變化的移動(dòng)終端的狀態(tài)信息,并根據(jù)該移動(dòng)終端的狀態(tài)信息更新本地顯示的該移動(dòng)終端的狀態(tài)信息。詳細(xì)實(shí)現(xiàn)過程如下:
步驟303:調(diào)度臺(tái)向服務(wù)器發(fā)送連接請(qǐng)求消息。
該連接請(qǐng)求消息攜帶調(diào)度員賬號(hào)。該連接請(qǐng)求消息還可以攜帶調(diào)度臺(tái)標(biāo)志信息,該調(diào)度臺(tái)標(biāo)志信息用于向服務(wù)器說明該調(diào)度員賬號(hào)對(duì)應(yīng)的設(shè)備為調(diào)度臺(tái)。
該連接請(qǐng)求消息用于請(qǐng)求服務(wù)器建立調(diào)度臺(tái)與服務(wù)器之間的websocket連接。
調(diào)度臺(tái)在發(fā)送該連接請(qǐng)求消息之前,還判斷其是否支持websocket協(xié)議,如果支持,則向服務(wù)器發(fā)送連接請(qǐng)求消息。
步驟304:服務(wù)器接收該連接請(qǐng)求消息,建立與調(diào)度臺(tái)之間的websocket連接。
具體地,服務(wù)器接收該連接請(qǐng)求消息,該連接請(qǐng)求消息攜帶調(diào)度員賬號(hào)和調(diào)度臺(tái)標(biāo)志信息,根據(jù)該調(diào)度臺(tái)標(biāo)志信息確定出該調(diào)度員賬號(hào)對(duì)應(yīng)的設(shè)備為調(diào)度臺(tái),將該調(diào)度員賬號(hào)添加到調(diào)度員賬號(hào)連接池,建立與調(diào)度臺(tái)之間的websocket連接。
其中,服務(wù)器接收該連接請(qǐng)求消息后,會(huì)觸發(fā)調(diào)度臺(tái)與服務(wù)器之間的onopen事件,服務(wù)器根據(jù)該onopen事件建立與調(diào)度臺(tái)之間的websocket連接。
如果服務(wù)器與調(diào)度臺(tái)之間的websocket連接建立失敗,服務(wù)器會(huì)觸發(fā)調(diào)度臺(tái)的onclose事件,在onclose事件中,啟動(dòng)連接失敗機(jī)制,設(shè)置定時(shí)器,定時(shí)器的時(shí)間達(dá)到預(yù)設(shè)時(shí)間時(shí),服務(wù)器重新建立與調(diào)度臺(tái)之間的websocket連接。預(yù)設(shè)時(shí)間可以為5秒、6秒或7秒等。
調(diào)度員賬號(hào)連接池用于保存所有在線狀態(tài)的調(diào)度臺(tái)對(duì)應(yīng)的調(diào)度員賬號(hào)。所謂在線狀態(tài)的調(diào)度臺(tái)是指與服務(wù)器之間存在websocket連接的調(diào)度臺(tái)。
服務(wù)器建立完與調(diào)度臺(tái)之間的websocket連接后,將該websocket連接與該調(diào)度臺(tái)的調(diào)度員賬號(hào)綁定。
調(diào)度臺(tái)也會(huì)斷開與服務(wù)器之間的websocket連接,即調(diào)度臺(tái)由在線狀態(tài)變?yōu)殡x線狀態(tài)。調(diào)度臺(tái)斷開與服務(wù)器之間的websocket連接后,會(huì)觸發(fā)服務(wù)器的onclose事件。服務(wù)器在其onclose事件觸發(fā)后獲取該斷開的websocket連接,并進(jìn)一步獲取與該websocket連接綁定的調(diào)度員賬號(hào),從調(diào)度員賬號(hào)連接池中刪除該調(diào)度員賬號(hào)。
調(diào)度系統(tǒng)中還包括至少一個(gè)移動(dòng)終端,對(duì)于任一個(gè)移動(dòng)終端,移動(dòng)終端在啟動(dòng)后可以與服務(wù)器建立websocket連接,建立完websocket連接后移動(dòng)終端的狀態(tài)信息由離線狀態(tài)變?yōu)樵诰€狀態(tài),在移動(dòng)終端與服務(wù)器之間的websocket連接斷開后,移動(dòng)終端的狀態(tài)信息由在線狀態(tài)變?yōu)殡x線狀態(tài)。
移動(dòng)終端的狀態(tài)信息發(fā)生變化時(shí),都需要將變化后的移動(dòng)終端的狀態(tài)信息通知給調(diào)度臺(tái),以使調(diào)度臺(tái)及時(shí)更新。詳細(xì)實(shí)現(xiàn)如下:
步驟305:移動(dòng)終端向服務(wù)器發(fā)送連接請(qǐng)求消息,該連接請(qǐng)求消息攜帶移動(dòng)終端賬號(hào)。
該移動(dòng)終端是調(diào)度系統(tǒng)中的任一個(gè)移動(dòng)終端,該移動(dòng)終端在啟動(dòng)后向服務(wù)器發(fā)送連接請(qǐng)求消息。
該連接請(qǐng)求消息還可以攜帶移動(dòng)終端標(biāo)志信息,該移動(dòng)終端標(biāo)志信息用于向服務(wù)器說明該移動(dòng)終端賬號(hào)對(duì)應(yīng)的設(shè)備為移動(dòng)終端。
該連接請(qǐng)求消息用于請(qǐng)求服務(wù)器建立移動(dòng)終端與服務(wù)器之間的websocket連接。
步驟306:服務(wù)器接收該連接請(qǐng)求消息,建立與移動(dòng)終端之間的websocket連接,設(shè)置移動(dòng)終端的狀態(tài)信息為在線狀態(tài)。
具體地,服務(wù)器接收移動(dòng)終端發(fā)送的該連接請(qǐng)求消息,該連接請(qǐng)求消息攜帶移動(dòng)終端賬號(hào)和移動(dòng)終端標(biāo)志信息,根據(jù)該移動(dòng)終端標(biāo)志信息確定出該移動(dòng)終端賬號(hào)對(duì)應(yīng)的設(shè)備為移動(dòng)終端,將該移動(dòng)終端賬號(hào)添加到移動(dòng)終端賬號(hào)連接池,建立與移動(dòng)終端之間的websocket連接。
其中,服務(wù)器接收該連接請(qǐng)求消息后,會(huì)觸發(fā)移動(dòng)終端與服務(wù)器之間的onopen事件,服務(wù)器根據(jù)該onopen事件建立與移動(dòng)終端之間的websocket連接。
如果服務(wù)器與移動(dòng)終端之間的websocket連接建立失敗,服務(wù)器會(huì)觸發(fā)移動(dòng)終端的onclose事件,在onclose事件中,啟動(dòng)連接失敗機(jī)制,設(shè)置定時(shí)器,定時(shí)器的時(shí)間達(dá)到預(yù)設(shè)時(shí)間時(shí),服務(wù)器重新建立與調(diào)度臺(tái)之間的websocket連接。預(yù)設(shè)時(shí)間可以為5秒、6秒或7秒等。
移動(dòng)終端賬號(hào)連接池用于保存所有在線狀態(tài)的移動(dòng)終端對(duì)應(yīng)的移動(dòng)終端賬號(hào)。服務(wù)器在建立與移動(dòng)終端之間的websocket連接后,還綁定該websocket連接與移動(dòng)終端賬號(hào)。
服務(wù)器在設(shè)置該移動(dòng)終端的狀態(tài)信息為在線狀態(tài)后,還可以根據(jù)該移動(dòng)終端賬號(hào),從數(shù)據(jù)庫中的移動(dòng)終端賬號(hào)與狀態(tài)信息的對(duì)應(yīng)關(guān)系中獲取該移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息,將該移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息更新為在線狀態(tài)。
步驟307:服務(wù)器根據(jù)該移動(dòng)終端賬號(hào),獲取管理該移動(dòng)終端的調(diào)度員賬號(hào)。
具體地,服務(wù)器根據(jù)該移動(dòng)終端賬號(hào),從數(shù)據(jù)庫中的調(diào)度員賬號(hào)與移動(dòng)終端賬號(hào)之間的對(duì)應(yīng)關(guān)系中獲取該移動(dòng)終端賬號(hào)對(duì)應(yīng)的調(diào)度員賬號(hào),將獲取的調(diào)度員賬號(hào)確定為管理該移動(dòng)終端的調(diào)度員賬號(hào)。
步驟308:服務(wù)器向該調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第一更新消息,第一更新消息包括該移動(dòng)終端賬號(hào)和該移動(dòng)終端的狀態(tài)信息。
具體地,服務(wù)器判斷該調(diào)度員賬號(hào)是否位于調(diào)度員賬號(hào)連接池,如果位于該調(diào)度員賬號(hào)連接池中,表明該調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)處于在線狀態(tài),向該調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第一更新消息,第一更新消息包括該移動(dòng)終端賬號(hào)和該移動(dòng)終端的狀態(tài)信息;如果不位于該調(diào)度員賬號(hào)連接池中,表明該調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)處于離線狀態(tài),停止向該調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第一更新消息。
步驟309:調(diào)度臺(tái)接收該第一更新消息,第一更新消息包括的移動(dòng)終端賬號(hào)和狀態(tài)信息,將本地保存的該移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息更新為第一更新消息包括的狀態(tài)信息。
調(diào)度臺(tái)接收到服務(wù)器發(fā)送的第一更新消息后,會(huì)觸發(fā)onmessage事件,解析第一更新消息得到該移動(dòng)終端賬號(hào)和該移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息,將本地保存的以及顯示的該移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息更新為第一更新消息包括的狀態(tài)信息。
調(diào)度系統(tǒng)中的處于在線狀態(tài)的移動(dòng)終端還可能退出登錄服務(wù)器,此時(shí)移動(dòng)終端由在線狀態(tài)變?yōu)殡x線狀態(tài)。其中,移動(dòng)終端直接斷開與服務(wù)器之間的websocket連接,實(shí)現(xiàn)退出登錄服務(wù)器,此時(shí)也需要向調(diào)度臺(tái)通知該移動(dòng)終端的狀態(tài)信息,詳細(xì)實(shí)現(xiàn)如下:
步驟310:當(dāng)檢測(cè)到服務(wù)器與移動(dòng)終端之間的websocket連接斷開,服務(wù)器將移動(dòng)終端的狀態(tài)信息設(shè)置為離線狀態(tài),向調(diào)度臺(tái)發(fā)送第二更新消息,第二更新消息包括該移動(dòng)終端的移動(dòng)終端賬號(hào)和狀態(tài)信息。
移動(dòng)終端退出登錄服務(wù)器,會(huì)斷開移動(dòng)終端與服務(wù)器之間的websocket連接,websocket連接斷開后會(huì)觸發(fā)服務(wù)器的onclose事件。服務(wù)器在其onclose事件觸發(fā)后獲取該斷開的websocket連接,并進(jìn)一步獲取與該websocket連接綁定的移動(dòng)終端賬號(hào),將該移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息設(shè)置為離線狀態(tài),向調(diào)度臺(tái)發(fā)送第二更新消息,第二更新消息包括該移動(dòng)終端賬號(hào)和設(shè)置的狀態(tài)信息。
服務(wù)器還可以從移動(dòng)終端賬號(hào)連接池中刪除該移動(dòng)終端賬號(hào),以及還可以從數(shù)據(jù)庫中的移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中獲取對(duì)應(yīng)的狀態(tài)信息,將獲取的狀態(tài)信息更新為離線狀態(tài)。
步驟311:調(diào)度臺(tái)接收該第二更新消息,第二更新消息包括的移動(dòng)終端賬號(hào)和狀態(tài)信息,將本地保存的該移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息更新為第二更新消息包括的狀態(tài)信息。
調(diào)度臺(tái)接收到服務(wù)器發(fā)送的第二更新消息后,會(huì)觸發(fā)onmessage事件,解析第二更新消息得到該移動(dòng)終端賬號(hào)和該移動(dòng)賬號(hào)對(duì)應(yīng)的狀態(tài)信息,將本地保存的以及顯示的該移動(dòng)終端賬號(hào)對(duì)應(yīng)的狀態(tài)信息更新為第二更新消息包括的狀態(tài)信息。
在本發(fā)明實(shí)施例中,服務(wù)器當(dāng)建立與移動(dòng)終端之間的websocket連接時(shí),設(shè)置移動(dòng)終端的狀態(tài)信息為在線狀態(tài),向調(diào)度臺(tái)發(fā)送包括該狀態(tài)信息的第一更新消息,觸發(fā)調(diào)度臺(tái)對(duì)移動(dòng)終端的狀態(tài)信息進(jìn)行更新,以及,服務(wù)器檢測(cè)到移動(dòng)終端斷開服務(wù)器與移動(dòng)終端之間的websocket連接時(shí),設(shè)置移動(dòng)終端的狀態(tài)信息為離線狀態(tài),向調(diào)度臺(tái)發(fā)送包括該狀態(tài)信息的第二更新消息,觸發(fā)調(diào)度臺(tái)對(duì)移動(dòng)終端的狀態(tài)信息進(jìn)行更新,這樣提高調(diào)度臺(tái)更新移動(dòng)終端狀態(tài)的實(shí)時(shí)性。由于不需要調(diào)度臺(tái)周期性請(qǐng)求服務(wù)器,減小了服務(wù)器的壓力。
下述為本發(fā)明裝置實(shí)施例,可以用于執(zhí)行本發(fā)明方法實(shí)施例。對(duì)于本發(fā)明裝置實(shí)施例中未披露的細(xì)節(jié),請(qǐng)參照本發(fā)明方法實(shí)施例。
實(shí)施例4
參見圖3,本發(fā)明實(shí)施例提供了一種移動(dòng)終端的狀態(tài)更新裝置400,所述裝置400包括:
接收模塊401,用于接收移動(dòng)終端發(fā)送的連接請(qǐng)求消息,所述連接請(qǐng)求消息攜帶所述移動(dòng)終端的移動(dòng)終端賬號(hào);
建立模塊402,用于根據(jù)所述移動(dòng)終端的終端賬號(hào)建立與所述移動(dòng)終端之間的websocket網(wǎng)頁套接字連接,設(shè)置所述移動(dòng)終端的狀態(tài)信息為在線狀態(tài);
獲取模塊403,用于根據(jù)所述移動(dòng)終端賬號(hào),獲取管理所述移動(dòng)終端的調(diào)度員賬號(hào);
發(fā)送模塊404,用于向所述調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第一更新消息,所述第一更新消息包括所述移動(dòng)終端賬號(hào)和所述移動(dòng)終端的狀態(tài)信息,所述第一更新消息用于所述調(diào)度臺(tái)更新所述移動(dòng)終端的狀態(tài)信息。
可選的,所述獲取模塊403包括:
獲取單元,用于根據(jù)所述移動(dòng)終端賬號(hào),從移動(dòng)終端賬號(hào)與調(diào)度員賬號(hào)的對(duì)應(yīng)關(guān)系中獲取對(duì)應(yīng)的調(diào)度員賬號(hào);
確定單元,用于將所述獲取的調(diào)度員賬號(hào)確定為管理所述移動(dòng)終端的調(diào)度員賬號(hào)。
可選的,所述裝置400還包括:
第一更新模塊,用于根據(jù)所述移動(dòng)終端賬號(hào),在移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中將所述移動(dòng)終端的狀態(tài)信息更新為在線狀態(tài)。
可選的,所述發(fā)送模塊404,還用于當(dāng)檢測(cè)到所述裝置400與所述移動(dòng)終端之間的websocket連接斷開,將所述移動(dòng)終端的狀態(tài)信息設(shè)置為離線狀態(tài),獲取用于管理所述移動(dòng)終端的調(diào)度員賬號(hào),向所述調(diào)度員賬號(hào)對(duì)應(yīng)的調(diào)度臺(tái)發(fā)送第二更新消息,所述第二更新消息包括所述移動(dòng)終端賬號(hào)和所述移動(dòng)終端的狀態(tài)信息,所述第二更新消息用于所述調(diào)度臺(tái)更新所述移動(dòng)終端的狀態(tài)信息。
可選的,所述裝置400還包括:
第二更新模塊,用于根據(jù)所述移動(dòng)終端賬號(hào),在移動(dòng)終端賬號(hào)與移動(dòng)終端的狀態(tài)信息的對(duì)應(yīng)關(guān)系中將所述移動(dòng)終端的狀態(tài)信息更新為離線狀態(tài)。
本發(fā)明實(shí)施例中,所述裝置400當(dāng)建立與移動(dòng)終端之間的websocket連接時(shí),設(shè)置移動(dòng)終端的狀態(tài)信息為在線狀態(tài),向調(diào)度臺(tái)發(fā)送包括該狀態(tài)信息的第一更新消息,觸發(fā)調(diào)度臺(tái)對(duì)移動(dòng)終端的狀態(tài)信息進(jìn)行更新,以及,所述裝置400檢測(cè)到移動(dòng)終端斷開所述裝置400與移動(dòng)終端之間的websocket連接時(shí),設(shè)置移動(dòng)終端的狀態(tài)信息為離線狀態(tài),向調(diào)度臺(tái)發(fā)送包括該狀態(tài)信息的第二更新消息,觸發(fā)調(diào)度臺(tái)對(duì)移動(dòng)終端的狀態(tài)信息進(jìn)行更新,這樣提高調(diào)度臺(tái)更新移動(dòng)終端狀態(tài)的實(shí)時(shí)性。由于不需要調(diào)度臺(tái)周期性請(qǐng)求所述裝置400,減小了所述裝置400的壓力。
關(guān)于上述實(shí)施例中的裝置,其中各個(gè)模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實(shí)施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
實(shí)施例5
圖5是根據(jù)一示例性實(shí)施例示出的一種裝置500的框圖,該裝置500可以為實(shí)施例1或?qū)嵤├?中的調(diào)度臺(tái)或移動(dòng)終端。參照?qǐng)D5,裝置500可以包括以下一個(gè)或多個(gè)組件:處理組件502,存儲(chǔ)器504,電源組件506,多媒體組件508,音頻組件510,輸入/輸出(i/o)的接口512,傳感器組件514,以及通信組件516。
處理組件502通??刂蒲b置500的整體操作,諸如與顯示,電話呼叫,數(shù)據(jù)通信,相機(jī)操作和記錄操作相關(guān)聯(lián)的操作。處理組件502可以包括一個(gè)或多個(gè)處理器520來執(zhí)行指令,以完成上述的方法的全部或部分步驟。此外,處理組件502可以包括一個(gè)或多個(gè)模塊,便于處理組件502和其他組件之間的交互。例如,處理組件502可以包括多媒體模塊,以方便多媒體組件508和處理組件502之間的交互。
存儲(chǔ)器504被配置為存儲(chǔ)各種類型的數(shù)據(jù)以支持在裝置500的操作。這些數(shù)據(jù)的示例包括用于在裝置500上操作的任何應(yīng)用程序或方法的指令,聯(lián)系人數(shù)據(jù),電話簿數(shù)據(jù),消息,圖片,視頻等。存儲(chǔ)器504可以由任何類型的易失性或非易失性存儲(chǔ)設(shè)備或者它們的組合實(shí)現(xiàn),如靜態(tài)隨機(jī)存取存儲(chǔ)器(sram),電可擦除可編程只讀存儲(chǔ)器(eeprom),可擦除可編程只讀存儲(chǔ)器(eprom),可編程只讀存儲(chǔ)器(prom),只讀存儲(chǔ)器(rom),磁存儲(chǔ)器,快閃存儲(chǔ)器,磁盤或光盤。
電源組件506為裝置500的各種組件提供電力。電源組件506可以包括電源管理系統(tǒng),一個(gè)或多個(gè)電源,及其他與為裝置500生成、管理和分配電力相關(guān)聯(lián)的組件。
多媒體組件508包括在所述裝置500和用戶之間的提供一個(gè)輸出接口的屏幕。在一些實(shí)施例中,屏幕可以包括液晶顯示器(lcd)和觸摸面板(tp)。如果屏幕包括觸摸面板,屏幕可以被實(shí)現(xiàn)為觸摸屏,以接收來自用戶的輸入信號(hào)。觸摸面板包括一個(gè)或多個(gè)觸摸傳感器以感測(cè)觸摸、滑動(dòng)和觸摸面板上的手勢(shì)。所述觸摸傳感器可以不僅感測(cè)觸摸或滑動(dòng)動(dòng)作的邊界,而且還檢測(cè)與所述觸摸或滑動(dòng)操作相關(guān)的持續(xù)時(shí)間和壓力。在一些實(shí)施例中,多媒體組件508包括一個(gè)前置攝像頭和/或后置攝像頭。當(dāng)裝置500處于操作模式,如拍攝模式或視頻模式時(shí),前置攝像頭和/或后置攝像頭可以接收外部的多媒體數(shù)據(jù)。每個(gè)前置攝像頭和后置攝像頭可以是一個(gè)固定的光學(xué)透鏡系統(tǒng)或具有焦距和光學(xué)變焦能力。
音頻組件510被配置為輸出和/或輸入音頻信號(hào)。例如,音頻組件510包括一個(gè)麥克風(fēng)(mic),當(dāng)裝置500處于操作模式,如呼叫模式、記錄模式和語音識(shí)別模式時(shí),麥克風(fēng)被配置為接收外部音頻信號(hào)。所接收的音頻信號(hào)可以被進(jìn)一步存儲(chǔ)在存儲(chǔ)器504或經(jīng)由通信組件516發(fā)送。在一些實(shí)施例中,音頻組件510還包括一個(gè)揚(yáng)聲器,用于輸出音頻信號(hào)。
i/o接口512為處理組件502和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點(diǎn)擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動(dòng)按鈕和鎖定按鈕。
傳感器組件514包括一個(gè)或多個(gè)傳感器,用于為裝置500提供各個(gè)方面的狀態(tài)評(píng)估。例如,傳感器組件514可以檢測(cè)到裝置500的打開/關(guān)閉狀態(tài),組件的相對(duì)定位,例如所述組件為裝置500的顯示器和小鍵盤,傳感器組件514還可以檢測(cè)裝置500或裝置500一個(gè)組件的位置改變,用戶與裝置500接觸的存在或不存在,裝置500方位或加速/減速和裝置500的溫度變化。傳感器組件514可以包括接近傳感器,被配置用來在沒有任何的物理接觸時(shí)檢測(cè)附近物體的存在。傳感器組件514還可以包括光傳感器,如cmos或ccd圖像傳感器,用于在成像應(yīng)用中使用。在一些實(shí)施例中,該傳感器組件514還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
通信組件516被配置為便于裝置500和其他設(shè)備之間有線或無線方式的通信。裝置500可以接入基于通信標(biāo)準(zhǔn)的無線網(wǎng)絡(luò),如wifi,2g或3g,或它們的組合。在一個(gè)示例性實(shí)施例中,通信組件516經(jīng)由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號(hào)或廣播相關(guān)信息。在一個(gè)示例性實(shí)施例中,所述通信組件516還包括近場(chǎng)通信(nfc)模塊,以促進(jìn)短程通信。例如,在nfc模塊可基于射頻識(shí)別(rfid)技術(shù),紅外數(shù)據(jù)協(xié)會(huì)(irda)技術(shù),超寬帶(uwb)技術(shù),藍(lán)牙(bt)技術(shù)和其他技術(shù)來實(shí)現(xiàn)。
在示例性實(shí)施例中,裝置500可以被一個(gè)或多個(gè)應(yīng)用專用集成電路(asic)、數(shù)字信號(hào)處理器(dsp)、數(shù)字信號(hào)處理設(shè)備(dspd)、可編程邏輯器件(pld)、現(xiàn)場(chǎng)可編程門陣列(fpga)、控制器、微控制器、微處理器或其他電子元件實(shí)現(xiàn),用于執(zhí)行上述方法。
在示例性實(shí)施例中,還提供了一種包括指令的非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),例如包括指令的存儲(chǔ)器504,上述指令可由裝置500的處理器520執(zhí)行以完成上述方法。例如,所述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是rom、隨機(jī)存取存儲(chǔ)器(ram)、cd-rom、磁帶、軟盤和光數(shù)據(jù)存儲(chǔ)設(shè)備等。
一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的指令由裝置500的處理器執(zhí)行時(shí),使得裝置500能夠執(zhí)行實(shí)施例3中調(diào)度臺(tái)或移動(dòng)終端執(zhí)行步驟。
實(shí)施例6
圖6是根據(jù)一示例性實(shí)施例示出的一種移動(dòng)終端的狀態(tài)更新裝置600的框圖。例如,裝置600可以被提供為實(shí)施例1或?qū)嵤├?提供的服務(wù)器。參照?qǐng)D6,裝置600包括處理組件622,其進(jìn)一步包括一個(gè)或多個(gè)處理器,以及由存儲(chǔ)器632所代表的存儲(chǔ)器資源,用于存儲(chǔ)可由處理部件622執(zhí)行的指令,例如應(yīng)用程序。存儲(chǔ)器632中存儲(chǔ)的應(yīng)用程序可以包括一個(gè)或一個(gè)以上的每一個(gè)對(duì)應(yīng)于一組指令的模塊。此外,處理組件622被配置為執(zhí)行指令,以執(zhí)行上述移動(dòng)終端的狀態(tài)更新方法。
裝置600還可以包括一個(gè)電源組件626被配置為執(zhí)行裝置600的電源管理,一個(gè)有線或無線網(wǎng)絡(luò)接口650被配置為將裝置600連接到網(wǎng)絡(luò),和一個(gè)輸入輸出(i/o)接口658。裝置600可以操作基于存儲(chǔ)在存儲(chǔ)器632的操作系統(tǒng),例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或類似。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。