本申請涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種接口調(diào)用方法和裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,以及用戶的需求越來越多,各式各樣的服務(wù)器不斷涌現(xiàn)。其中,很多服務(wù)器提供服務(wù)的對象是有限制的,只有通過服務(wù)器認證的用戶才可以獲得服務(wù)器提供的服務(wù)。
通常,服務(wù)器中包含若干接口,每一個接口對應(yīng)于服務(wù)器提供的不同服務(wù)??蛻舳丝梢酝ㄟ^調(diào)用服務(wù)端提供的接口來獲得服務(wù)器提供的相應(yīng)的服務(wù)。
在現(xiàn)有技術(shù)中,服務(wù)端先對客戶端的用戶身份進行認證,在客戶端的用戶身份認證通過之后,客戶端才可以調(diào)用服務(wù)端提供的接口。然而,當客戶端調(diào)用接口結(jié)束后,服務(wù)端就會與客戶端斷開TCP連接。因此,當客戶端再次調(diào)用接口時,客戶端需要再次與服務(wù)端建立TCP連接,需要服務(wù)端對客戶端的用戶身份重新認證,并在用戶身份認證通過后,客戶端才可以重新調(diào)用服務(wù)端提供的接口。
由于當客戶端每一次調(diào)用服務(wù)端提供的接口時,客戶端均需要重新與服務(wù)端建立TCP連接,因此服務(wù)端對客戶端發(fā)送的接口調(diào)用請求的響應(yīng)速度很慢。
技術(shù)實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N接口調(diào)用方法和裝置,應(yīng)用于服務(wù)端,采用本申請?zhí)峁┑募夹g(shù)方案,加快服務(wù)端對客戶端發(fā)送的接口調(diào)用請求的響應(yīng)速度。
具體地,本申請是通過如下技術(shù)方案實現(xiàn)的:
一種接口調(diào)用方法,應(yīng)用于服務(wù)端,包括:
接收客戶端發(fā)送的接口調(diào)用請求;
判斷為所述客戶端設(shè)置的接口調(diào)用?;顣r長是否超時;其中,所述接口調(diào)用?;顣r長為所述客戶端首次調(diào)用本端的任一接口時為所述客戶端設(shè)置的;
如果超時,斷開與所述客戶端的連接;如果未超時,響應(yīng)所述接口調(diào)用請求執(zhí)行接口調(diào)用;其中,所述接口調(diào)用?;顣r長未超時時,本端與所述客戶端保持連接狀態(tài)。
一種接口調(diào)用的裝置,應(yīng)用于服務(wù)端,包括:
接收單元,用于接收客戶端發(fā)送的接口調(diào)用請求;
判斷單元,用于判斷為所述客戶端設(shè)置的接口調(diào)用?;顣r長是否超時;其中,所述接口調(diào)用?;顣r長為所述客戶端首次調(diào)用本端的任一接口時為所述客戶端設(shè)置的;
執(zhí)行單元,用于如果超時,斷開與所述客戶端的連接;如果未超時,響應(yīng)所述接口調(diào)用請求執(zhí)行接口調(diào)用;其中,所述接口調(diào)用?;顣r長未超時時,本端與所述客戶端保持連接狀態(tài)。
當客戶端首次登錄進行認證成功后,所述客戶端調(diào)用服務(wù)端所提供的接口中的任一接口時,所述服務(wù)端可以為所述客戶端設(shè)置接口調(diào)用?;顣r長。當所述客戶端完成本次接口調(diào)用后,在所述接口調(diào)用?;顣r長內(nèi),所述客戶端與所述服務(wù)端一直保持連接狀態(tài)。因此,在所述接口調(diào)用?;顣r長內(nèi),如果所述客戶端再次調(diào)用接口,那么所述服務(wù)端不需要與所述客戶端重新建立連接后,對所述客戶端重新進行認證,所述服務(wù)端可以直接響應(yīng)于所述客戶端發(fā)送的接口調(diào)用請求執(zhí)行接口調(diào)用,從而,加快了所述服務(wù)端對所述客戶端發(fā)送的接口調(diào)用請求的響應(yīng)速度。
附圖說明
圖1為本申請示例性示出的一種接口調(diào)用方法流程圖;
圖2為本申請實施例示出的在線命令列表示意圖;
圖3為本申請實施例示出的另一種在線命令列表示意圖;
圖4為本申請一種接口調(diào)用裝置所在服務(wù)端的一種硬件結(jié)構(gòu)圖;
圖5為本申請實施例示例性示出的一種接口調(diào)用裝置。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
在本申請使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。
應(yīng)當理解,盡管在本申請可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應(yīng)于確定”。
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,以及用戶的需求越來越多,各式各樣的服務(wù)器不斷涌現(xiàn)。其中,很多服務(wù)器提供服務(wù)的對象是有限制的,只有通過服務(wù)器認證的用戶才可以獲得服務(wù)器提供的服務(wù)。
通常,服務(wù)器中包含若干接口,每一個接口對應(yīng)于服務(wù)器提供的不同服務(wù)??蛻舳丝梢酝ㄟ^調(diào)用服務(wù)端提供的接口來獲得服務(wù)器提供的相應(yīng)的服務(wù)。
在現(xiàn)有技術(shù)中,當用戶首次訪問服務(wù)端時,客戶端與所述服務(wù)端建立TCP連接,然后所述客戶端可以獲取用戶在登錄頁面中輸入的認證信息(用戶名、密碼等),并保存所述認證信息。同時,所述客戶端可以將所述認證信息發(fā)送至服務(wù)端。所述服務(wù)端接收到所述認證信息后,可以對所述認證信息進行認證,并在對所述認證信息認證通過后,向所述客戶端發(fā)送認證成功的響應(yīng)消息,以及觸發(fā)接口調(diào)用程序,為客戶端提供接口調(diào)用服務(wù)。
所述客戶端接收到認證成功的響應(yīng)消息后,用戶可以基于所述客戶端向所述服務(wù)端發(fā)送接口調(diào)用請求。當所述服務(wù)端接收到所述接口調(diào)用請求時,可以讀取所述接口調(diào)用請求中攜帶的接口調(diào)用命令I(lǐng)D,并獲取到與所述接口調(diào)用命令對應(yīng)的參數(shù)后,生成與所述接口調(diào)用命令I(lǐng)D對應(yīng)的接口調(diào)用命令。然后,所述服務(wù)端可以響應(yīng)所述接口調(diào)用命令執(zhí)行接口調(diào)用。
當所述服務(wù)端執(zhí)行完接口調(diào)用后,所述服務(wù)端會關(guān)閉接口調(diào)用程序,并斷開與所述客戶端的連接。當所述客戶端再次獲取到用戶向所述服務(wù)端發(fā)送的接口調(diào)用請求時,由于此時所述客戶端與所述服務(wù)端處于斷開狀態(tài),所述客戶端需要與所述服務(wù)端重新建立連接。
所述客戶端可以將保存的認證信息重新發(fā)送至所述服務(wù)端,由所述服務(wù)端對所述認證信息重新認證,并在認證通過后,重新觸發(fā)接口調(diào)用程序,以及向所述客戶端發(fā)送認證成功的響應(yīng)消息。
當所述客戶端接收到認證成功的響應(yīng)消息后,所述客戶端可以將獲取到的接口調(diào)用請求發(fā)送至所述服務(wù)端。所述服務(wù)端接收到所述接口調(diào)用請求時,按照上述響應(yīng)接口調(diào)用請求執(zhí)行接口調(diào)用的過程,重新執(zhí)行上述過程。
綜上所述,由于客戶端每次完成接口調(diào)用后,服務(wù)端均會與所述客戶端斷開連接,當客戶端再次調(diào)用所述服務(wù)端提供的接口時,所述客戶端需要與所述服務(wù)端重新建立連接,并重新通過所述服務(wù)端的認證后,才能調(diào)用所述服務(wù)端提供的接口,因此,所述服務(wù)端對所述客戶端發(fā)送的接口調(diào)用請求的響應(yīng)速度比較慢。
為了解決現(xiàn)有技術(shù)中的問題,本申請?zhí)峁┝艘环N接口調(diào)用方法,應(yīng)用于服務(wù)端,所述方法包括:接收客戶端發(fā)送的接口調(diào)用請求;判斷為所述客戶端設(shè)置的接口調(diào)用?;顣r長是否超時;其中,所述接口調(diào)用?;顣r長為所述客戶端首次調(diào)用本端的任一接口時為所述客戶端設(shè)置的;如果超時,斷開與所述客戶端的連接;如果未超時,響應(yīng)所述接口調(diào)用請求執(zhí)行接口調(diào)用;其中,所述接口調(diào)用?;顣r長未超時時,本端與所述客戶端保持連接狀態(tài)。
當客戶端首次登錄進行認證成功后,所述客戶端調(diào)用服務(wù)端所提供的接口中的任一接口時,所述服務(wù)端可以為所述客戶端設(shè)置接口調(diào)用?;顣r長。當所述客戶端完成本次接口調(diào)用后,在所述接口調(diào)用?;顣r長內(nèi),所述客戶端與所述服務(wù)端一直保持連接狀態(tài)。因此,在所述接口調(diào)用?;顣r長內(nèi),如果所述客戶端再次調(diào)用接口,那么所述服務(wù)端不需要與所述客戶端重新建立連接后,對所述客戶端重新進行認證,所述服務(wù)端可以直接響應(yīng)于所述客戶端發(fā)送的接口調(diào)用請求執(zhí)行接口調(diào)用,從而,加快了所述服務(wù)端對所述客戶端發(fā)送的接口調(diào)用請求的響應(yīng)速度。
請參見圖1,圖1為本申請示例性示出的一種接口調(diào)用方法流程圖,應(yīng)用于服務(wù)端,具體執(zhí)行以下步驟:
步驟101:接收客戶端發(fā)送的接口調(diào)用請求;
步驟102:判斷為所述客戶端設(shè)置的接口調(diào)用?;顣r長是否超時;其中,所述接口調(diào)用?;顣r長為所述客戶端首次調(diào)用本端的任一接口時為所述客戶端設(shè)置的;
步驟103:如果超時,斷開與所述客戶端的連接;如果未超時,響應(yīng)所述接口調(diào)用請求執(zhí)行接口調(diào)用;其中,所述接口調(diào)用保活時長未超時時,本端與所述客戶端保持連接狀態(tài)。
在本申請中,當服務(wù)端接收到客戶端的連接請求時,與所述客戶端建立連接,然后對所述客戶端發(fā)送的認證信息進行認證。在認證成功后,所述客戶端可以向所述服務(wù)端發(fā)送接口調(diào)用請求,所述服務(wù)端可以響應(yīng)于所述接口調(diào)用執(zhí)行接口調(diào)用,并為所述客戶端設(shè)置接口調(diào)用保活時長。在所述保活時長內(nèi),所述客戶端與所述服務(wù)端保護連接狀態(tài),當所述客戶端再次向所述服務(wù)端發(fā)送接口調(diào)用請求時,所述客戶端不需要與所述服務(wù)端重新建立連接以及重新進行認證。所述服務(wù)端可以直接響應(yīng)于所述接口調(diào)用請求執(zhí)行接口調(diào)用。
本申請示出的技術(shù)方法的實現(xiàn)過程可以分為認證過程和接口調(diào)用過程,其中,所述認證過程由所述服務(wù)端的認證程序來完成,所述接收調(diào)用過程由所述服務(wù)端的接口調(diào)用程序完成。
(1)、認證過程
當用戶觸發(fā)客戶端的啟動時,所述客戶端可以向所述服務(wù)端發(fā)起連接請求,所述客戶端可以與所述服務(wù)端建立TCP連接。當所述客戶端與所述服務(wù)端成功建立連接后,用戶可以在所述客戶端的登錄頁面中輸入認證信息,將攜帶所述認證信息的認證請求發(fā)送至所述服務(wù)端。
當所述服務(wù)端接收到所述客戶端發(fā)送的認證請求后,所述服務(wù)端可以從所述認證請求中獲取認證信息,然后對所述認證進行認證。如果所述服務(wù)端對所述客戶端認證通過,所述服務(wù)端可以向所述客戶端返回認證成功的響應(yīng)消息,并在內(nèi)存中為所述客戶端創(chuàng)建在線命令列表。如果所述服務(wù)端對所述客戶端認證失敗,所述服務(wù)端可以向所述客戶端返回認證失敗的響應(yīng)消息。
其中,上述在線命令列表為在所述客戶端在線時,所述服務(wù)端為所述客戶端創(chuàng)建的用于存儲接口調(diào)用命令的列表。
(2)、接口調(diào)用過程
a、首次調(diào)用接口
當所述客戶端接收所述服務(wù)端返回的認證成功的響應(yīng)消息時,所述客戶端可以向所述服務(wù)端發(fā)送接口調(diào)用請求;其中,本次發(fā)送的接口調(diào)用請求為所述客戶端認證成功后首次向所述服務(wù)端發(fā)送的接口調(diào)用請求;所述接口調(diào)用請求中攜帶了狀態(tài)標識符。
其中,上述狀態(tài)標識符為所述客戶端通過檢測本端向所述服務(wù)端發(fā)送接口調(diào)用請求中是否攜帶接口調(diào)用命令I(lǐng)D,以及攜帶的接口調(diào)用命令I(lǐng)D是否已經(jīng)向所述服務(wù)端發(fā)送過,來表示所述客戶端的狀態(tài)的標簽。
當所述客戶端主動與所述服務(wù)端斷開連接時,所述接口調(diào)用請求中不會攜帶接口調(diào)用命令I(lǐng)D,所述狀態(tài)標識符則定義為斷開標識符。當所述客戶端調(diào)用所述服務(wù)端提供的接口時,所述客戶端可以檢測本次進行接口調(diào)用的接口調(diào)用命令I(lǐng)D是否已經(jīng)向所述服務(wù)端發(fā)送過,如果發(fā)送過,所述狀態(tài)標識符則定義為保持標識符;如果沒有發(fā)送過,所述狀態(tài)標識符則定義為新建標識符。
由于本次接口調(diào)用為所述客戶端認證成功后,所述客戶端首次向所述服務(wù)端發(fā)送接口調(diào)用請求,因此,所述接口調(diào)用請求中攜帶的狀態(tài)標識符為新建標識符。
當所述服務(wù)端接收到所述客戶端發(fā)送的所述接口調(diào)用請求時,所述服務(wù)端觸發(fā)接口調(diào)用程序的啟動。所述服務(wù)端可以從所述接口調(diào)用請求中獲取狀態(tài)標識符并識別所述狀態(tài)標識符。此時,所述客戶端可以識別出所述狀態(tài)標識符為新建標識符。
在這樣的情況下,所述服務(wù)端可以進一步從所述接口調(diào)用請求中獲取接口調(diào)用命令I(lǐng)D。然后,所述服務(wù)端可以獲取與所述接口調(diào)用命令I(lǐng)D對應(yīng)的參數(shù),并基于所述接口調(diào)用命令I(lǐng)D,以及與所述接口調(diào)用命令I(lǐng)D對應(yīng)的參數(shù)創(chuàng)建命令表項。
當所述服務(wù)端創(chuàng)建完命令表項后,所述服務(wù)端可以在內(nèi)存中查找為所述客戶端創(chuàng)建的在線命令列表,并將所述命令表項添加至所述在線命令列表中,以及,所述服務(wù)端可以基于所述命令表項執(zhí)行接口調(diào)用。
其中,當所述服務(wù)端響應(yīng)于所述客戶端發(fā)送的接口調(diào)用請求執(zhí)行接口調(diào)用后,所述服務(wù)端可以為所述客戶端設(shè)置接口調(diào)用保活時長。
在所述接口調(diào)用?;顣r長內(nèi),所述服務(wù)端與所述客戶端保持連接狀態(tài)。如果所述客戶端在所述接口調(diào)用保活時長內(nèi)再次向所述服務(wù)端發(fā)送接口調(diào)用請求時,所述客戶端無需再向所述服務(wù)端發(fā)送認證請求,由所述服務(wù)端對所述客戶端重新進行認證。
b、再次調(diào)用接口
在本申請中,所述服務(wù)端實時判斷為所述客戶端設(shè)置的接口調(diào)用保護時長是否超時。如果所述接口調(diào)用?;顣r長超時,所述服務(wù)端可以與所述客戶端直接斷開連接,并將為所述客戶端創(chuàng)建的在線命令列表刪除。如果所述接口調(diào)用?;顣r長未超時,保持所述服務(wù)端與所述客戶端的連接狀態(tài)。
在所述服務(wù)端與所述客戶端保持連接狀態(tài)期間,當服務(wù)端接收到所述客戶端發(fā)送的接口調(diào)用請求時,所述服務(wù)端可以從所述接口調(diào)用請求中獲取所述客戶端的狀態(tài)標識符,并判斷所述狀態(tài)標識符是否為斷開標識符。
需要說明的是,所述服務(wù)端判斷為所述客戶端設(shè)置的接口調(diào)用保活時長是否超時這個過程,與所述服務(wù)端接收所述客戶端發(fā)送的接口調(diào)用請求這個過程是并行的。
如果所述狀態(tài)標識符為斷開標識符,說明所述客戶端主動與所述客戶端斷開連接,所述服務(wù)端可以斷開與所述客戶端的連接,并將為所述客戶端創(chuàng)建的在線命令列表刪除。如果所述狀態(tài)標識符不是斷開標識符,所述服務(wù)端可以進一步判斷所述客戶端的狀態(tài)標識符。
在本申請中,如果所述狀態(tài)標識符為新建標識符,說明所述客戶端本次發(fā)送的接口調(diào)用請求中的接口調(diào)用命令I(lǐng)D為新的ID。所述服務(wù)端可以讀取所述接口調(diào)用請求中攜帶的接口調(diào)用命令I(lǐng)D,并獲取與所述接口調(diào)用命令I(lǐng)D對應(yīng)的參數(shù)后生成與所述接口調(diào)用命令I(lǐng)D對應(yīng)的接口調(diào)用命令。然后,所述服務(wù)端可以將所述接口調(diào)用命令添加至為所述客戶端創(chuàng)建的在線命令列表,并響應(yīng)所述新建的接口調(diào)用命令執(zhí)行接口調(diào)用。
請參見圖2,圖2為本申請實施例示出的在線命令列表示意圖。
在本申請中,所述在線命令列表中包括客戶端ID,接口調(diào)用命令I(lǐng)D,以及與所述接口調(diào)用命令I(lǐng)D對應(yīng)的接口調(diào)用命令。在這里只是對在線命令列表的組成以及形式進行示例性的描述,對所述在線命令列表中是否包括其它內(nèi)容,以及所述在線命令列表的形式不進行限定。
如果所述狀態(tài)標識符為保持標識符,說明所述客戶端本次發(fā)送的接口調(diào)用請求中的接口調(diào)用命令I(lǐng)D在此之前已經(jīng)發(fā)送過。所述服務(wù)端可以讀取所述接口調(diào)用請求中攜帶的接口調(diào)用命令I(lǐng)D,然后在為所述客戶端創(chuàng)建的在線命令列表中查找與所述接口調(diào)用命令I(lǐng)D對應(yīng)的接口調(diào)用命令。所述服務(wù)端查找到接口調(diào)用命令后,所述服務(wù)端可以響應(yīng)所述接口調(diào)用命令執(zhí)行接口調(diào)用。
如果,在所述接口調(diào)用保活時長內(nèi),所述客戶端一直在調(diào)用所述服務(wù)端提供的接口,如果一直不更改所述接口調(diào)用?;顣r長,那么當所述接口調(diào)用保護時長超時后,所述服務(wù)端會直接斷開與所述客戶端的連接,那么所述客戶端需要重新建立連接,會導(dǎo)致所述客戶端的業(yè)務(wù)短暫中斷,因此,當所述客戶端每次成功調(diào)用接口后,所述服務(wù)端需要更新所述接口調(diào)用?;顣r長。
因此,在本申請中,無論所述狀態(tài)標識符為新建標識符還是保持標識符,當所述客戶端完成接口調(diào)用后,所述服務(wù)端可以重置為所述客戶端設(shè)置的所述接口調(diào)用保活時長。
由于,不同的客戶端所執(zhí)行的業(yè)務(wù)不同,從而所述客戶端需要調(diào)用的接口也會不相同,為了加快所述服務(wù)端對所述客戶端發(fā)送的接口調(diào)用請求的響應(yīng)速度,可以對所述在線命令列表中的接口調(diào)用命令按照頻率高低進行排序,使執(zhí)行頻率比較高的接口調(diào)用命令能盡快被查找到,從而可以加快所述服務(wù)端對所述客戶端的響應(yīng)速度。
請參見圖3,圖3為本申請實施例示出的另一種在線命令列表示意圖。
在本申請中,在所述在線命令列表中添加了執(zhí)行次數(shù)字段和優(yōu)先級字段,所述執(zhí)行次數(shù)字段用于記錄接口調(diào)用命令的執(zhí)行次數(shù),所述優(yōu)先級字段用于記錄接口調(diào)用命令的優(yōu)先級。其中,接口調(diào)用命令的執(zhí)行次數(shù)越多,所述接口調(diào)用命令的優(yōu)先級越高。
其中,圖3所示的示意圖中,所述優(yōu)先級越高,優(yōu)先級數(shù)值越小,在這里對優(yōu)先級的表述方式不進行限定。
當所述客戶端完成接口調(diào)用后,所述服務(wù)端可以在所述在線命令列表中,對與本次接口調(diào)用對應(yīng)的接口調(diào)用命令的執(zhí)行次數(shù)進行累加。
當所述服務(wù)端將接口調(diào)用命令的執(zhí)行次數(shù)進行累加后,所述服務(wù)端根據(jù)所述接口調(diào)用命令的執(zhí)行次數(shù)的變化,實時對所述接口調(diào)用命令的優(yōu)先級進行更新。
然后,所述服務(wù)端可以基于更新后的所述接口調(diào)用程序的優(yōu)先級,按照優(yōu)先級的順序?qū)λ鲈诰€命令列表中的接口調(diào)用命令進行排序,使所述在線命令列表中優(yōu)先級高的接口調(diào)用命令優(yōu)先被查詢匹配。最后,所述服務(wù)端可以響應(yīng)與本次接口調(diào)用對應(yīng)的接口調(diào)用命令執(zhí)行接口調(diào)用。
由以上本申請實施例示出的技術(shù)方法可見,當客戶端首次登錄進行認證成功后,所述客戶端調(diào)用服務(wù)端所提供的接口中的任一接口時,所述服務(wù)端可以為所述客戶端設(shè)置接口調(diào)用保活時長。當所述客戶端完成本次接口調(diào)用后,在所述接口調(diào)用保活時長內(nèi),所述客戶端與所述服務(wù)端一直保持連接狀態(tài)。因此,在所述接口調(diào)用?;顣r長內(nèi),如果所述客戶端再次調(diào)用接口,那么所述服務(wù)端不需要與所述客戶端重新建立連接后,對所述客戶端重新進行認證,所述服務(wù)端可以直接響應(yīng)于所述客戶端發(fā)送的接口調(diào)用請求執(zhí)行接口調(diào)用,從而,加快了所述服務(wù)端對所述客戶端發(fā)送的接口調(diào)用請求的響應(yīng)速度。
與前述一種接口調(diào)用方法的實施例相對應(yīng),本申請還提供了一種接口調(diào)用裝置的實施例。
本申請一種接口調(diào)用裝置的實施例可以應(yīng)用在服務(wù)端上。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,是通過其所在服務(wù)端的處理器將非易失性存儲器中對應(yīng)的計算機程序指令讀取到內(nèi)存中運行形成的。從硬件層面而言,如圖4所示,為本申請一種接口調(diào)用裝置所在服務(wù)端的一種硬件結(jié)構(gòu)圖,除了圖4所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲器之外,實施例中裝置所在的服務(wù)端通常根據(jù)該接口調(diào)用的實際功能,還可以包括其他硬件,對此不再贅述。
請參見圖5,圖5為本申請實施例示例性示出的一種接口調(diào)用裝置,應(yīng)用于服務(wù)端,所述裝置包括:接收單元510,判斷單元520,執(zhí)行單元530。
其中,所述接收單元510,用于接收客戶端發(fā)送的接口調(diào)用請求;
所述判斷單元520,用于判斷為所述客戶端設(shè)置的接口調(diào)用?;顣r長是否超時;其中,所述接口調(diào)用?;顣r長為所述客戶端首次調(diào)用本端的任一接口時為所述客戶端設(shè)置的;
所述執(zhí)行單元530,用于如果超時,斷開與所述客戶端的連接;如果未超時,響應(yīng)所述接口調(diào)用請求執(zhí)行接口調(diào)用;其中,所述接口調(diào)用?;顣r長未超時時,本端與所述客戶端保持連接狀態(tài)。
在本申請示出的實施例中,所述裝置還包括:
接收子單元,用于接收所述客戶端發(fā)送的認證請求;其中,所述認證請求攜帶認證信息;
認證單元,用于基于所述認證信息對所述客戶端進行認證;
創(chuàng)建單元,用于如果認證通過,為所述客戶端創(chuàng)建在線命令列表。
當所述服務(wù)端對所述客戶端認證通過,并為所述客戶端創(chuàng)建在線命令列表后,所述服務(wù)端可以接收所述客戶端發(fā)送的接口調(diào)用請求,并對所述接口調(diào)用請求進行響應(yīng)。其中,所述接口調(diào)用請求攜帶狀態(tài)標識符。
所述執(zhí)行單元530具體用于:
如果所述狀態(tài)標識符為新建標識符,讀取所述接口調(diào)用請求中攜帶的接口調(diào)用命令I(lǐng)D,在與所述客戶端對應(yīng)的在線命令列表中為所述客戶端新建與所述接口調(diào)用命令I(lǐng)D對應(yīng)的接口調(diào)用命令,并響應(yīng)于新建的該接口調(diào)用命令執(zhí)行接口調(diào)用;
如果所述狀態(tài)標識符為保持標識符,讀取所述接口調(diào)用請求中攜帶的接口調(diào)用命令I(lǐng)D,并查找與所述客戶端對應(yīng)的在線命令列表中是否緩存了該接口調(diào)用命令I(lǐng)D;如果是,從所述在線命令列表中讀取與該接口調(diào)用命令I(lǐng)D對應(yīng)的接口調(diào)用命令,并響應(yīng)于該接口調(diào)用命令執(zhí)行接口調(diào)用。
另外,在本申請示出的實施例中,所述裝置還包括
刪除單元,用于如果所述狀態(tài)標識符為斷開標識符,斷開與所述客戶端的連接,并刪除為所述客戶端創(chuàng)建的所述在線命令列表。
重置單元,用于當完成所述接口調(diào)用時,重置所述接口調(diào)用?;顣r長;以及,
累加單元,用于在所述在線命令列表中,對與本次接口調(diào)用對應(yīng)的接口調(diào)用命令的執(zhí)行次數(shù)進行累加。
設(shè)置單元,用于基于所述在線命令列表中各接口調(diào)用命令對應(yīng)的執(zhí)行次數(shù),為各接口調(diào)用命令設(shè)置優(yōu)先級;其中,所述接口調(diào)用命令的執(zhí)行次數(shù)越多,優(yōu)先級越高;以及,
更新單元,用于基于各接口調(diào)用命令的執(zhí)行次數(shù)的變化,對所述各接口調(diào)用命令的優(yōu)先級進行實時更新;
排序單元,用于基于各接口調(diào)用命令的優(yōu)先級,對所述在線命令列表中各接口調(diào)用命令進行排序。
刪除子單元,用于當所述接口調(diào)用?;顣r長超時,并斷開與所述客戶端的連接后,刪除為所述客戶端創(chuàng)建的所述在線命令列表。
上述裝置中各個單元的功能和作用的實現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實現(xiàn)過程,在此不再贅述。
對于裝置實施例而言,由于其基本對應(yīng)于方法實施例,所以相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本申請方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本申請保護的范圍之內(nèi)。