一種客戶端和服務端進行通信的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡應用技術(shù)領(lǐng)域,特別是涉及一種客戶端和服務端進行通信的方法及裝置。
【背景技術(shù)】
[0002]在進行Web應用開發(fā)時,服務端的信息需要迅速實時地被客戶端獲取,現(xiàn)有的客戶端獲取服務端信息的模式主要有以下幾種:輪詢、HTTP長連接或者在客戶端安裝插件。
[0003]使用輪詢的方式需要瀏覽器不斷向服務器發(fā)送請求,而每次發(fā)送的HTTP請求都包含著完整的HTTP頭信息和一次TCP連接的建立,客戶端和服務器對于頻繁的發(fā)送請求和返回響應都有一定的性能消耗,將會占用很多帶寬和服務器資源。當連接到同一個服務器上的客戶端數(shù)量較多時,將會大大增加服務器的負擔。
[0004]采用HTTP長連接讓服務器端以一種非常緩慢的方式來推送數(shù)據(jù),雖然與輪詢的方法相比有了一定的改進,但這是一種半雙工的連接方式,服務器推送一批數(shù)據(jù)時不能及時地將收到的新信息也一并推送,且服務器每次推送完畢,客戶端還得重新建立一次連接。因此在推送的過程中就會造成大量的冗余信息,增加網(wǎng)絡的負擔,從而導致客戶端數(shù)據(jù)延遲。
[0005]而在客戶端安裝插件進行消息推送的方法不利于維護,而且還有可能因為客戶端的緩存原因?qū)е马撁嫔巷@示一些過時的信息。
[0006]鑒于此,提供一種客戶端和服務端進行通信的方法及裝置是非常有必要的。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的是提供一種客戶端和服務端進行通信的方法及裝置,以減少網(wǎng)絡負載以及網(wǎng)絡延遲,保證客戶端能夠及時獲取最有效的數(shù)據(jù)。
[0008]為解決上述技術(shù)問題,本發(fā)明提供一種客戶端和服務端進行通信的方法,包括:
[0009]客戶端向服務端發(fā)送全雙工連接請求;
[0010]所述服務端對接收到的所述全雙工連接請求進行驗證;
[0011]驗證成功后將驗證結(jié)果發(fā)送至所述客戶端,在所述客戶端以及所述服務端之間建立全雙工連接;
[0012]當所述服務端信息更新時,在建立的所述全雙工連接上主動將更新的信息推送到所述客戶端,所述服務端在推送過程中可同時接收來自所述客戶端的消息。
[0013]可選地,所述客戶端向服務端發(fā)送全雙工連接請求包括:
[0014]在建立TCP連接后,所述客戶端向所述服務端發(fā)送包含全雙工連接請求的報文。
[0015]可選地,所述驗證成功后將驗證結(jié)果發(fā)送至所述客戶端,在所述客戶端以及所述服務端之間建立全雙工連接包括:
[0016]驗證成功后,將所述驗證結(jié)果包含在應答報文中回復至所述客戶端,在所述客戶端以及所述服務端之間建立全雙工連接。
[0017]可選地,所述當所述服務端信息更新時,在建立的所述全雙工連接上主動將更新的信息推送到所述客戶端包括:
[0018]當所述服務端在第一次數(shù)據(jù)更新未完畢,而數(shù)據(jù)進行第二次更新時,所述服務端可直接對第二次更新的數(shù)據(jù)進行發(fā)送。
[0019]本發(fā)明還提供了一種客戶端和服務端進行通信的裝置,包括:
[0020]請求模塊,用于向服務端發(fā)送全雙工連接請求;
[0021]驗證模塊,用于對接收到的所述全雙工連接請求進行驗證;
[0022]建立模塊,用于驗證成功后將驗證結(jié)果發(fā)送至所述客戶端,在所述客戶端以及所述服務端之間建立全雙工連接;
[0023]發(fā)送模塊,用于當所述服務端信息更新時,在建立的所述全雙工連接上主動將更新的信息推送到所述客戶端,所述服務端在推送過程中可同時接收來自所述客戶端的消息。
[0024]可選地,所述請求模塊具體用于:在建立TCP連接后,向所述服務端發(fā)送包含全雙工連接請求的報文。
[0025]可選地,所述建立模塊具體用于:驗證成功后,將所述驗證結(jié)果包含在應答報文中回復至所述客戶端,在所述客戶端以及所述服務端之間建立全雙工連接。
[0026]可選地,所述發(fā)送模塊具體用于:當所述服務端在第一次數(shù)據(jù)更新未完畢,而數(shù)據(jù)進行第二次更新時,所述服務端可直接對第二次更新的數(shù)據(jù)進行發(fā)送。
[0027]本發(fā)明所提供的客戶端和服務端進行通信的方法及裝置,客戶端向服務端發(fā)送全雙工連接請求;服務端對接收到的全雙工連接請求進行驗證后,將驗證結(jié)果發(fā)送至客戶端,從而建立全雙工連接;這樣當服務端信息更新時,可以在全雙工連接上主動將更新的信息推送到客戶端,且在推送過程中可同時接收來自所述客戶端的消息??梢姡景l(fā)明通過在服務端和客戶端建立全雙工模式的連接,服務端更新的信息無需客戶端再發(fā)送輪詢信息,就能夠通過該連接主動迅速地推送到客戶端,減少了網(wǎng)絡延遲和網(wǎng)絡資源的消耗,保證了客戶端數(shù)據(jù)的有效性。
【附圖說明】
[0028]圖1為本發(fā)明所提供的客戶端和服務端進行通信的方法的一種【具體實施方式】的流程圖;
[0029]圖2為本發(fā)明所提供的客戶端和服務端進行通信的方法的另一種【具體實施方式】的流程圖;
[0030]圖3為全雙工連接的建立的過程示意圖;
[0031]圖4為全雙工連接下服務端同時推送和接收消息的過程示意圖;
[0032]圖5為全雙工連接下服務端實時推送數(shù)據(jù)更新到客戶端的過程示意圖;
[0033]圖6為本發(fā)明所提供的客戶端和服務端進行通信的裝置的一種【具體實施方式】的結(jié)構(gòu)框圖。
【具體實施方式】
[0034]傳統(tǒng)客戶端和服務端進行信息傳遞的方式是半雙工、客戶端請求、服務端響應的模式,這種模式下雙方的連接會造成大量的網(wǎng)絡資源浪費,而且客戶端數(shù)據(jù)無法保證其實時性以及有效性。
[0035]鑒于此,本發(fā)明的核心是提供一種客戶端和服務端進行通信的方法及裝置。
[0036]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0037]本發(fā)明所提供的客戶端和服務端進行通信的方法的一種【具體實施方式】的流程圖如圖1所示,該方法包括:
[0038]步驟SlOl:客戶端向服務端發(fā)送全雙工連接請求;
[0039]步驟S102:所述服務端對接收到的所述全雙工連接請求進行驗證;
[0040]步驟S103:驗證成功后將驗證結(jié)果發(fā)送至所述客戶端,在所述客戶端以及所述服務端之間建立全雙工連接;
[0041]步驟S104:當所述服務端信息更新時,在建立的所述全雙工連接上主動將更新的信息推送到所述客戶端,所述服務端在推送過程中可同時接收來自所述客戶端的消息。
[0042]本發(fā)明所提供的客戶端和服務端進行通信的方法,客戶端向服務端發(fā)送全雙工連接請求;服務端對接收到的全雙工連接請求進行驗證后,將驗證結(jié)果發(fā)送至客戶端,從而建立全雙工連接;這樣當服務端信息更新時,可以在全雙工連接上主動將更新的信息推送到客戶端,且在推送過程中可同時接收來自所述客戶端的消息??梢姡景l(fā)明通過在服務端和客戶端建立全雙工模式的連接,服務端更新的信息無需客戶端再發(fā)送輪詢信息,就能夠通過該連接主動迅速地推送到客戶端,減少了網(wǎng)絡延遲和網(wǎng)絡資源的消耗,保證了客戶端數(shù)據(jù)的有效性。
[0043]本發(fā)明所提供的客戶端和服務端進行通信的方法的另一種【具體實施方式】的流程圖如圖2所示,該方法包括:
[0044]步驟S201:客戶端和服務端在建立TCP連接后,客戶端向服務端發(fā)送包含全雙工連接請求的報文;
[00