一種實時選座方法及裝置與流程
2024-01-24 06:26:15

本發明涉及在線購票技術,尤其涉及一種實時選座方法及裝置。
背景技術:
網際網路技術的發展給人們帶來了極大的便利,也給傳統的產業帶來了新的契機。以傳統的影院為例,網際網路技術的發展使得影院票務的電子化成為可能,通過網際網路提供影院票務線上預訂/在線選座業務,使得用戶可以預先瀏覽最近放映的影片,並相應進行電子購票,避免了用戶以前觀看影片時需現場購票導致的等待時間較長以及無法預知所放影片的技術問題。
對於影院來說,為客戶提供一快速的在線選座購票平臺可以有效提升核心競爭力,而從普通用戶的角度出發,如何快速、簡單、舒適的進行在線購票才是最重要的。尤其是當用戶購買偶像的演唱會門票或一期待已久的熱門話劇演出票時,在線選座購票平臺如何在現有庫存票務不足以滿足強大購買力的情況下,為每一用戶快速購買到用戶想要的票務,有效縮短用戶購票時間,最大化滿足用戶購買需求顯得尤為重要。
線上預訂/在線選座業務購票一般包含登錄進入在線選座購票平臺、選座、確認選座有效、支付、生成訂單等多個流程,其中,選座是購票按流程中最耗時的一子流程,也是最容易影響用戶購票體驗的一關鍵因素。
目前的線上預訂/在線選座業務提供的選座方法,採用的是基於http協議的非實時選座方式,即當用戶進入在線選座購票平臺後,用戶並不知曉哪些座位已被選定,當點擊選擇一預期座位後,通過將選擇的座位信息向管理票務的服務端發送,服務端判別該座位是否被其他用戶選擇,如果該座位已被其他用戶選擇,在該種情形下,服務端返回相關信息,例如,通過視窗(view)以一彈框彈出一提示信息,以告知用戶該座位已經被其他用戶選中,請選擇其他座位。瀏覽到該提示信息後,用戶只能關閉彈框,然後繼續選擇座位。這樣,在購買票務尤其是熱門票務時,用戶往往需要經過多次選擇才能完成購票,或者,經過幾次選擇的耽誤,座位已經被其它用戶選擇完畢,使得選座佔用用戶較多時間,購票效率較低,在線購票成功率不高。
技術實現要素:
有鑑於此,本發明實施例提供一種實時選座方法及裝置,能夠提升購票效率,以解決現有的選座方法中採用非實時選座方式進行在線購票導致的購票效率及購票成功率不高的問題。
第一方面,本發明實施例提供一種實時選座方法,包括:
創建與服務端的websockets連接;
監測到繪製為可選狀態的座位被選中後,通過創建的所述與服務端的websockets連接將選中的座位信息傳輸至服務端,以使服務端向websockets連接的客戶端發送所述選中的座位信息,並使接收到所述選中的座位信息的客戶端將被選中的座位繪製為不可選狀態。
結合第一方面,在第一方面的第一種實施方式中,所述創建與服務端的websockets連接包括:
獲取服務端的websocket連接地址;
通過javascript實例化一websocket對象並傳入獲取的websocket連接地址,創建與所述傳入的websocket連接地址的websocket連接。
結合第一方面的第一種實施方式,在第一方面的第二種實施方式中,所述獲取服務端的websocket連接地址包括:
客戶端以異步方式獲取服務端的推送服務接口,通過所述推送服務接口獲取所述websocket連接地址。
結合第一方面的第一種實施方式,在第一方面的第三種實施方式中,在所述獲取服務端的websocket連接地址之後,通過javascript實例化一websocket對象並傳入獲取的websocket連接地址之前,該方法還包括:
判斷客戶端的當前瀏覽器是否支持websocketapi,如果支持,執行所述通過javascript實例化一websocket對象並傳入獲取的websocket連接地址的步驟。
結合第一方面、第一方面的第一種至第三種中任一種實施方式,在第一方面的第四種實施方式中,所述將選中的座位信息傳輸至服務端包括:
調用鎖座接口,以post方式將選中的座位信息異步傳輸到服務端。
結合第一方面的第四種實施方式,在第一方面的第五種實施方式中,所述調用鎖座接口,以post方式將選中的座位信息異步傳輸到服務端包括:
將選中的座位信息封裝為javascript對象;
通過fetchapi調用服務端提供的鎖座接口,通過post方式將所述javascript對象傳輸至服務端。
結合第一方面、第一方面的第一種至第三種中任一種實施方式,在第一方面的第六種實施方式中,所述將被選中的座位繪製為不可選狀態包括:
依次將選中的座位信息,以基於react&redux架構的單項數據流方式傳輸到篩選器中進行座位圖的計算與渲染。
結合第一方面,在第一方面的第七種實施方式中,所述方法還包括:
在座位被選中後,開始計時;
當計時超過預先設置的第一計時閾值後仍沒有接收到包含所述選中的座位的訂單成功信息,判斷所述websocket連接是否異常,如果異常,調用websocket.close方法關閉所述websocket連接,並在重新構建websocket連接後,向服務端傳輸將選中的座位信息更新為未被選中的信息。
結合第一方面的第七種實施方式,在第一方面的第八種實施方式中,所述判斷所述websocket連接是否異常包括:
提取實例化的所述websocket對象的readystate屬性值,利用所述readystate屬性值判斷所述websocket連接是否異常。
第二方面,本發明實施例提供一種實時選座裝置,包括:
連接創建模塊,用於創建與服務端的websockets連接;
選座鎖定模塊,用於在監測到繪製為可選狀態的座位被選中後,通過創建的所述與服務端的websockets連接將選中的座位信息傳輸至服務端,以使服務端向websockets連接的客戶端發送所述選中的座位信息,並使接收到所述選中的座位信息的客戶端將被選中的座位繪製為不可選狀態。
本發明實施例提供的一種實時選座方法及裝置,通過創建與服務端的websockets連接;監測到繪製為可選狀態的座位被選中後,通過創建的所述與服務端的websockets連接將選中的座位信息傳輸至服務端,以使服務端向websockets連接的客戶端發送所述選中的座位信息,並使接收到所述選中的座位信息的客戶端將被選中的座位繪製為不可選狀態,能夠提升在線購票效率,以解決現有的選座方法中採用非實時選座方式進行在線購票導致的購票效率不高的問題。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。
圖1為本發明的實施例一實時選座方法流程示意圖;
圖2為本發明的實施例二實時選座裝置結構示意圖。
具體實施方式
下面結合附圖對本發明實施例進行詳細描述。
應當明確,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其它實施例,都屬於本發明保護的範圍。
圖1為本發明的實施例一實時選座方法流程示意圖,如圖1所示,本實施例的方法可以包括:
步驟101,創建與服務端的websockets連接;
本實施例中,web套接字(sockets)是html5中出現的一個新的api技術,是下一代客戶端與服務端的異步通訊方式,相比於長輪詢(ajaxlong-polling)技術等傳統的方式,websockets技術無論在技術實現還是性能上會更高一籌,在一個單獨的持久連接上提供全雙工、雙向通訊,服務端與客戶端可以在給定的時間範圍內的任意時刻互相推送信息,並且允許跨域通訊。
本實施例中,服務端為支持websocket協議的伺服器,而現有使用標準http協議的服務端無法實現websockets協議,由於http協議只能實現單向的通信,因而,無論是輪詢(polling)還是長連接(longpolling),都需要由瀏覽器對服務端發出http請求,然後由服務端返回最新的數據給客戶端的瀏覽器,需要瀏覽器不斷的向服務端發出請求,服務端依據請求返回相應響應,由於客戶端和服務端之間的http連接需要身份驗證,會產生頻繁的身份驗證以及重複的信息發送。而websocket協議是基於tcp的一種新的網絡協議,能夠實現瀏覽器與服務端全雙工(full-duplex)通信,使得服務端能夠主動發送(推送)信息給客戶端而無需等待客戶端的請求,服務端與客戶端進行雙向通信,可以完全避免頻繁的身份驗證等開銷,同時,利用websocket協議,可以在服務端和客戶端之間傳輸數據包非常小的少量數據,服務端不再被動接收客戶端瀏覽器的請求之後才返回數據,而是在有新數據時就主動推送給客戶端瀏覽器,可以有效減少等待請求的時間,實時性高。
本實施例中,作為一可選實施例,創建與服務端的websockets連接包括:
a11,獲取服務端的websocket連接地址;
本實施例中,websocket連接地址包括:未加密的websocket連接地址以及加密的websocket連接地址,其中,未加密的websocket連接地址模式為ws://,加密的websocket連接地址模式為wss://。
本實施例中,作為一可選實施例,還可以獲取服務端的websocket埠信息。
本實施例中,作為一可選實施例,獲取服務端的websocket連接地址包括:
客戶端以異步方式獲取服務端的推送服務接口,通過所述推送服務接口獲取所述websocket連接地址。
本實施例中,作為一可選實施例,異步方式為fetchapi異步方式,推送服務接口為@push_service接口,即客戶端需要與服務端構建連接時,以fetchapi異步方式獲取(get)服務端的@push_service接口,通過所述@push_service接口獲取websocket連接地址。
a12,通過javascript實例化一websocket對象並傳入獲取的websocket連接地址,創建與所述傳入的websocket連接地址的websocket連接。
本實施例中,websocket連接是在客戶端與服務端之間http協議的初始握手階段,將http協議升級到websocket協議來建立的,websocket連接的底層仍是tcp/ip連接。具體來說,客戶端在javascript中創建了websockets對象後,生成http請求並傳輸至瀏覽器以向服務端發起websockets連接,在取得服務端返回的http請求響應後,觸發連接進行升級,即將連接使用的http協議升級為websocket協議。
作為另一可選實施例,在所述獲取服務端的websocket連接地址之後,通過javascript實例化一websocket對象並傳入獲取的websocket連接地址之前,該方法還包括:
判斷客戶端的當前瀏覽器是否支持websocketapi,如果支持,執行所述通過javascript實例化一websocket對象並傳入獲取的websocket連接地址的步驟。
本實施例中,如果當前瀏覽器不支持websocketapi,則按照現有技術進行選座購票流程。
本實施例中,在實例化之後,瀏覽器與服務端創建一websocket連接。
步驟102,監測到繪製為可選狀態的座位被選中後,通過創建的所述與服務端的websockets連接將選中的座位信息傳輸至服務端,以使服務端向websockets連接的客戶端發送所述選中的座位信息,並使接收到所述選中的座位信息的客戶端將被選中的座位繪製為不可選狀態。
本實施例中,websockets連接的客戶端是指與服務端構建有websockets連接的所有客戶端,包括:與服務端構建有websockets連接的傳輸選中的座位信息的客戶端以及與服務端構建有websockets連接的其他客戶端。
本實施例中,以影院為例,一個演出票選座項目會根據票價和場館劃分很多不同的分區,每一分區設有若干座位。對於非常搶手的爆款項目來說,開票時間開始後的一段時間內通常都是購票的高峰期,這時候會有大量用戶進入該項目進行購票,目前,用戶在選取座位時,不能知曉該座位是否已被其他用戶選取,只有將該選取的座位信息傳輸至服務端,經過服務端的判別並返回相應的判別結果,才能知曉選取的座位是否已被其它用戶選取,在已被其它用戶選取的情況下,需要再重新選取座位並執行相類似的流程,只有在選取的座位未被其它用戶選取的情形下,進行支付生成訂單,使得購票成功率以及效率都較低。
本實施例中,用戶在登錄進入在線選座購票平臺後,能夠供用戶選擇的座位被瀏覽器繪製為可選狀態,不能夠供用戶選擇的座位被瀏覽器繪製為不可選狀態,從而在用戶選擇座位的同時,能實時知曉該分區的一個或多個座位是否已經被其他用戶選取,從而從未被其他用戶選取的座位中選取座位進行購票。
本實施例中,作為一可選實施例,以影院為例,座位信息包括但不限於:座位標識(seatid)、場次標識(showid、分區標識(areaid)等。當然,實際應用中,座位信息還可以是長途汽車上的座位信息、遊輪以及火車上的座位信息、飛機上的座位信息、球場座位信息等,本實施例對此不作限定。
本實施例中,作為一可選實施例,可通過在瀏覽器中設置監測進程,用以監測用戶對座位的選擇。
本實施例中,作為一可選實施例,將選中的座位信息傳輸至服務端包括:
調用鎖座接口,以post方式將選中的座位信息異步傳輸到服務端。
本實施例中,鎖座接口為@post/tickets鎖座接口,當在線選座購票平臺中的某一個座位被選中時,選中座位的客戶端通過websockets連接的websockets通道,調用@post/tickets鎖座接口,以post方式將選中的座位信息異步傳輸到服務端。
本實施例中,作為一可選實施例,調用鎖座接口,以post方式將選中的座位信息異步傳輸到服務端包括:
將選中的座位信息封裝為javascript對象;
通過fetchapi調用服務端提供的鎖座接口,通過post方式將所述javascript對象傳輸至服務端。
本實施例中,當用戶在選座頁面選中一個座位,通過fetchapi調用服務端提供的一鎖座接口,通過post方式將選中的座位標識(seatid)、場次標識(showid、分區標識(areaid)所封裝的javascript對象傳給服務端。
本實施例中,服務端接收到選中的座位信息(javascript對象)後,將選中的座位信息推送(push)到預先設置的鎖座列表中,然後從鎖座列表中,通過websockets通道向與其websockets連接的所有客戶端推送該選中的座位信息,當服務端向客戶端推送信息時,觸發客戶端的消息(message)事件,客戶端在message事件觸發後,利用onmeassage的回調函數,將接收到的javascript對象進行解析,得到選中的座位信息並保存到預先設置的鎖座存儲器(lockedseatstore)的狀態樹(state)中,然後,依據狀態樹中的座位信息,將選中的座位繪製成不可選狀態。
本實施例中,作為一可選實施例,將被選中的座位繪製為不可選狀態包括:
依次將選中的座位信息(每次單個座位),以基於react&redux架構的單項數據流方式傳輸到篩選器(selector)中進行座位圖的計算與渲染。
本實施例中,每一次座位渲染,篩選器都會根據存儲的座位列表(seatslist)、用戶自己選擇的座位列表(userseatslist)和已經被鎖住的座位(lockedseat)的信息來計算出新的座位狀態數據集合,得到更新座位列表(newseatlist),用以替換座位列表(seatslist),每當接收到有新的被實時鎖住的座位時,進行一次座位渲染。
本實施例中,由於採用websockets連接,選中座位至將選中的座位在各客戶端繪製成不可選狀態的整個過程為異步過程,不需要各客戶端刷新頁面就可以將已經被選中(鎖住)的座位實時渲染到座位圖中,在用戶選擇座位後,可以直接進行支付、生成訂單等流程,從而可以有效降低用戶選擇的座位已被其他用戶選擇的情形而導致的選座時間。
本實施例中,作為一可選實施例,在所述創建與服務端的websockets連接之後,監測到繪製為可選狀態的座位被選中後之前,該方法還包括:
從所述服務端獲取最新的票務座位列表並存儲。
本實施例中,在創建與服務端的websockets連接後,可以在線選座購票平臺中選取所需購買的票務類型,例如,演出門票,觸發從服務端獲取最新的演出門票票務座位列表並存儲。也可以是直接從服務端獲取最新的各票務座位列表並存儲。
本實施例中,作為一可選實施例,該方法還包括:
在座位被選中後,開始計時;
當計時超過預先設置的第一計時閾值後仍沒有接收到包含所述選中的座位的訂單成功信息,判斷所述websocket連接是否異常,如果異常,調用websocket.close方法關閉所述websocket連接,並在重新構建websocket連接後,向服務端傳輸將選中的座位信息更新為未被選中的信息。
本實施例中,作為一可選實施例,判斷所述websocket連接是否異常包括:
提取實例化的所述websocket對象的readystate屬性值,利用所述readystate屬性值判斷所述websocket連接是否異常。
本實施例中,當出現異常情況時,觸發實例化的websocket對象的onclose方法,即客戶端根據websocket對象的readystate屬性來判斷當前的websocket連接是否已經進入了異常狀態,如果是,則觸發實例化的websocket對象的onclose方法調用websocket.close方法關閉websocket連接以釋放資源。
本實施例中,如果在預先設置的第一計時閾值內接收到包含所述選中的座位的訂單成功信息,則正常關閉websocket連接。
本實施例中,作為一可選實施例,可以通過設置心跳檢測來完成心跳重連,即在客戶端設置定時器重新創建websocket連接。
本實施例中,作為另一可選實施例,也可以在用戶選完座位進入到下一個頁面操作(例如,支付頁面)後,則直接斷開websocket連接,恢復為http連接。
本實施例中,通過實時的鎖座方法,即當用戶進入一個分區選擇座位時,已經被選擇的座位會實時的置灰變成不可選狀態,從而能夠實時瀏覽到該分區座位圖中的哪些座位已經被別人選擇,因而,用戶只要將自己的視覺範圍直接定位到那些可選狀態的座位即可,快速選中自己心儀的座位,有效提升購票成功率,購票佔用的用戶時間少,購票效率高。
圖2為本發明的實施例二實時選座裝置結構示意圖,如圖2所示,本實施例的裝置可以包括:連接創建模塊21以及選座鎖定模塊22,其中,
連接創建模塊21,用於創建與服務端的websockets連接;
選座鎖定模塊22,用於在監測到繪製為可選狀態的座位被選中後,通過創建的所述與服務端的websockets連接將選中的座位信息傳輸至服務端,以使服務端向websockets連接的客戶端發送所述選中的座位信息,並使接收到所述選中的座位信息的客戶端將被選中的座位繪製為不可選狀態。
本實施例中,作為一可選實施例,連接創建模塊21包括:連接地址獲取單元以及實例創建單元(圖中未示出),其中,
連接地址獲取單元,用於獲取服務端的websocket連接地址;
本實施例中,websocket連接地址包括:未加密的websocket連接地址以及加密的websocket連接地址,其中,未加密的websocket連接地址模式為ws://,加密的websocket連接地址模式為wss://。
本實施例中,作為一可選實施例,所述獲取服務端的websocket連接地址包括:
客戶端以異步方式獲取服務端的推送服務接口,通過所述推送服務接口獲取所述websocket連接地址。
本實施例中,作為一可選實施例,異步方式為fetchapi異步方式,推送服務接口為@push_service接口。
實例創建單元,用於通過javascript實例化一websocket對象並傳入獲取的websocket連接地址,創建與所述傳入的websocket連接地址的websocket連接。
本實施例中,作為另一可選實施例,連接創建模塊還可以包括:
接口支持判斷單元,用於在所述獲取服務端的websocket連接地址之後,判斷客戶端的當前瀏覽器是否支持websocketapi,如果支持,通知實例創建單元。
本實施例中,作為一可選實施例,選座鎖定模塊22包括:監測單元以及傳輸單元(圖中未示出),其中,
監測單元,用於在監測到繪製為可選狀態的座位被選中後,通知傳輸單元;
傳輸單元,用於通過創建的所述與服務端的websockets連接調用鎖座接口,以post方式將選中的座位信息異步傳輸到服務端,以使服務端向websockets連接的客戶端發送所述選中的座位信息,並使接收到所述選中的座位信息的客戶端將被選中的座位繪製為不可選狀態。
本實施例中,作為一可選實施例,以影院為例,座位信息包括但不限於:座位標識(seatid)、場次標識(showid、分區標識(areaid)等。當然,實際應用中,座位信息還可以是長途汽車上的座位信息、遊輪以及火車上的座位信息、飛機上的座位信息、球場座位信息等,本實施例對此不作限定。
本實施例中,作為一可選實施例,傳輸單元包括:
封裝子單元,用於將選中的座位信息封裝為javascript對象;
傳輸子單元,用於通過fetchapi調用服務端提供的鎖座接口,通過post方式將所述javascript對象傳輸至服務端。
本實施例中,當用戶在選座頁面選中一個座位,通過fetchapi調用服務端提供的一鎖座接口,通過post方式將選中的座位標識(seatid)、場次標識(showid、分區標識(areaid)所封裝的javascript對象傳給服務端。
本實施例中,作為一可選實施例,所述將被選中的座位繪製為不可選狀態包括:
依次將選中的座位信息,以基於react&redux架構的單項數據流方式傳輸到篩選器中進行座位圖的計算與渲染。
本實施例中,作為另一可選實施例,所述裝置還包括:計時模塊以及連接狀態監測模塊(圖中未示出),其中,
計時模塊,用於在座位被選中後,開始計時;
連接狀態監測模塊,用於當計時超過預先設置的第一計時閾值後仍沒有接收到包含所述選中的座位的訂單成功信息,判斷所述websocket連接是否異常,如果異常,調用websocket.close裝置關閉所述websocket連接,並在重新構建websocket連接後,向服務端傳輸將選中的座位信息更新為未被選中的信息。
本實施例中,作為一可選實施例,所述判斷所述websocket連接是否異常包括:
提取實例化的所述websocket對象的readystate屬性值,利用所述readystate屬性值判斷所述websocket連接是否異常。
本實施例中,如果在預先設置的第一計時閾值內接收到包含所述選中的座位的訂單成功信息,則正常關閉websocket連接。
本實施例中,作為再一可選實施例,該裝置還包括:
座位更新模塊,用於從所述服務端獲取最新的票務座位列表並存儲。
本實施例的裝置,可以用於執行圖1所示方法實施例的技術方案,其實現原理和技術效果類似,此處不再贅述。
需要說明的是,在本文中,諸如第一和第二等之類的關係術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關係或者順序。而且,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中的各個實施例均採用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。
尤其,對於裝置實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
在流程圖中表示或在此以其他方式描述的邏輯和/或步驟,例如,可以被認為是用於實現邏輯功能的可執行指令的定序列表,可以具體實現在任何計算機可讀介質中,以供指令執行系統、裝置或設備(如基於計算機的系統、包括處理器的系統或其他可以從指令執行系統、裝置或設備取指令並執行指令的系統)使用,或結合這些指令執行系統、裝置或設備而使用。就本說明書而言,"計算機可讀介質"可以是任何可以包含、存儲、通信、傳播或傳輸程序以供指令執行系統、裝置或設備或結合這些指令執行系統、裝置或設備而使用的裝置。計算機可讀介質的更具體的示例(非窮盡性列表)包括以下:具有一個或多個布線的電連接部(電子裝置),可攜式計算機盤盒(磁裝置),隨機存取存儲器(ram),只讀存儲器(rom),可擦除可編輯只讀存儲器(eprom或閃速存儲器),光纖裝置,以及可攜式光碟只讀存儲器(cdrom)。另外,計算機可讀介質甚至可以是可在其上列印所述程序的紙或其他合適的介質,因為可以例如通過對紙或其他介質進行光學掃描,接著進行編輯、解譯或必要時以其他合適方式進行處理來以電子方式獲得所述程序,然後將其存儲在計算機存儲器中。
應當理解,本發明的各部分可以用硬體、軟體、固件或它們的組合來實現。
在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟體或固件來實現。例如,如果用硬體來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用於對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現場可編程門陣列(fpga)等。
本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
為了描述的方便,描述以上裝置是以功能分為各種單元/模塊分別描述。當然,在實施本發明時可以把各單元/模塊的功能在同一個或多個軟體和/或硬體中實現。
通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本發明可藉助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在存儲介質中,如rom/ram、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。
以上所述,僅為本發明的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應以權利要求的保護範圍為準。