本發(fā)明專利技術(shù)公開了一種基于web的反向數(shù)據(jù)交互方法,包括以下步驟:1.判斷客戶端瀏覽器類型是否支持web?socket;2.如支持web?socket,則啟用web?socket方式進行數(shù)據(jù)交互;3.如不支持web?socket,則啟用長連接方式進行數(shù)據(jù)交互。本發(fā)明專利技術(shù)通過結(jié)合三種數(shù)據(jù)交互方法,確保服務(wù)器與客戶端之間通過最有效的方式進行數(shù)據(jù)交互,使客戶端向服務(wù)器的業(yè)務(wù)請求命中率提升到100%,并使用心跳機制使服務(wù)器的消耗降到最低,極大的提升了服務(wù)器的處理量。
A reverse data interaction method based on Web
The present invention discloses a reverse data exchange method based on Web, which comprises the following steps: 1 to determine whether to support the web client browser type socket; 2 like web socket, web socket is enabled for data interaction; 3 does not support web such as socket, will enable long connection for data interaction. Through the combination of the three methods of data interaction between client and server, ensure the data exchange through the most effective way to make the client to the server, the service request hit rate to 100%, the server to reduce the cost and use the heartbeat mechanism, greatly enhance the processing capacity of the server.
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及互聯(lián)網(wǎng)數(shù)據(jù)交互技術(shù),具體涉及一種基于web的反向數(shù)據(jù)交互方法。
技術(shù)介紹
目前互聯(lián)網(wǎng)中的數(shù)據(jù)交互,主要有三種方式。第一種是Ajax定期請求方式,這種方式嚴格來說并不算是服務(wù)器推送,而是客戶端在一個比較短的間隔內(nèi)定期去服務(wù)器用Ajax請求信息,如果服務(wù)器端有了新的事件,則客戶端在下一次請求就會獲取到,并在客戶端調(diào)用對應(yīng)的回調(diào)函數(shù)來處理這些信息。傳統(tǒng)的Ajax輪詢交互,服務(wù)器并不會每次都有數(shù)據(jù)可以處理并返回,導(dǎo)致大量的空查詢,從而嚴重的浪費了服務(wù)器資源和帶寬資源。長連接是另一種方式,是對于頁面掛起一個額外的Ajax請求,當服務(wù)器有事件發(fā)生時,將請求返回給客戶端,并在此掛起一個長連接。不過長連接多用于操作頻繁,點對點的通訊,而且連接數(shù)不能太多情況,適用范圍有限。第三種是WebSocket,WebSocket是HTML5開始提供的一種客戶端瀏覽器與服務(wù)器間進行全雙工通訊的網(wǎng)絡(luò)技術(shù)。在WebSocketAPI中,瀏覽器和服務(wù)器只需要做一個握手的動作,然后,瀏覽器和服務(wù)器之間就形成了一條快速通道,兩者之間就直接可以數(shù)據(jù)互相傳送。WebSocket協(xié)議的出現(xiàn)可以避免上述兩種方式帶來的服務(wù)器資源占用和寬帶占用,但缺點也是很明顯的,對客戶端和服務(wù)器都有一定要求,包括瀏覽器的版本和服務(wù)器的版本。由于中國瀏覽器市場復(fù)雜,HTML5沒有完成普及,所以websocket在很多情況下沒法直接使用。
技術(shù)實現(xiàn)思路
針對現(xiàn)有技術(shù)中存在的問題,本專利技術(shù)提供一種基于web的反向數(shù)據(jù)交互方法,能讓服務(wù)器及時向客戶端推送消息,并減少網(wǎng)絡(luò)請求,提供命中率。本專利技術(shù)解決技術(shù)問題采用的技術(shù)方案是:一種基于web的反向數(shù)據(jù)交互方法,包括以下步驟:1.判斷客戶端瀏覽器類型是否支持websocket;2.如支持websocket,則啟用websocket方式進行數(shù)據(jù)交互;3.如不支持websocket,則啟用長連接方式進行數(shù)據(jù)交互。進一步地,所述步驟3中,長連接方式包括:在客戶端瀏覽器中運行Ajax心跳程序,周期性向服務(wù)器心跳接收程序發(fā)送請求。進一步地,所述步驟3中,服務(wù)器接收程序收到請求后,處理查詢,如果有查詢結(jié)果,返回結(jié)果標識,如果沒有查詢則鎖定請求30秒,一段時間之后再次處理該請求,如果還是沒有,則返回?zé)o結(jié)果標識,Ajax心跳程序再次開始周期請求。進一步地,所述步驟3中,如果有查詢則啟動客戶端數(shù)據(jù)交互程序向服務(wù)器發(fā)送數(shù)據(jù)交互請求。進一步地,所述步驟3中,如果服務(wù)器有客戶端信息,服務(wù)器加上消息交互程序標識,客戶端根據(jù)交互程序標識,選擇相應(yīng)的交互程序與服務(wù)段單獨通訊,服務(wù)器業(yè)務(wù)服務(wù)提供程序接收到客戶端交互程序的請求。進一步地,所述步驟3中,服務(wù)器業(yè)務(wù)服務(wù)提供程序處理客戶端交互程序請求,返回處理結(jié)果;客戶端接收并解析服務(wù)器業(yè)務(wù)提供程序返回的結(jié)果,在瀏覽器中展示。進一步地,所述步驟3中,在客戶端沒有向服務(wù)器發(fā)送消息時,緩存客戶端的消息,以備客戶端查詢,在服務(wù)器沒有客戶端消息時,返回特定標識,讓客戶端延長等待時間。本專利技術(shù)通過結(jié)合三種數(shù)據(jù)交互方法,確保服務(wù)器與客戶端之間通過最有效的方式進行數(shù)據(jù)交互,使客戶端向服務(wù)器的業(yè)務(wù)請求命中率提升到100%,并使用心跳機制使服務(wù)器的消耗降到最低,極大的提升了服務(wù)器的處理量。附圖說明圖1是本專利技術(shù)所述一種基于web的反向數(shù)據(jù)交互方法的流程圖。具體實施方式如圖1所示,一種基于web的反向數(shù)據(jù)交互方法,包括以下步驟:1.判斷客戶端瀏覽器類型是否支持websocket;2.如支持websocket,則啟用websocket方式進行數(shù)據(jù)交互;3。如不支持websocket,則啟用長連接方式進行數(shù)據(jù)交互。先對瀏覽器的類型進行判斷,有利于服務(wù)器與瀏覽器之間選擇最優(yōu)方式進行數(shù)據(jù)交互,現(xiàn)有技術(shù)中,一般不會對瀏覽器類型進行判斷,而使用Ajax定期請求方式、長連接和websocket三種方式中的一種,一則造成服務(wù)器資源浪費,二則失去了選擇最優(yōu)數(shù)據(jù)交互方式的機會,使得用戶體驗變差。作為本專利技術(shù)的進一步實施方式,所述步驟3中,長連接方式包括:在客戶端瀏覽器中運行Ajax心跳程序,周期性向服務(wù)器心跳接收程序發(fā)送請求。作為本專利技術(shù)的進一步實施方式,所述步驟3中,服務(wù)器接收程序收到請求后,處理查詢,如果有查詢結(jié)果,返回結(jié)果標識,如果沒有查詢則鎖定請求一段時間,一段時間之后再次處理該請求,如果還是沒有,則返回?zé)o結(jié)果標識,Ajax心跳程序再次開始周期請求。作為本專利技術(shù)的進一步實施方式,所述步驟3中,如果有查詢則啟動客戶端數(shù)據(jù)交互程序向服務(wù)器發(fā)送數(shù)據(jù)交互請求。作為本專利技術(shù)的進一步實施方式,所述步驟3中,如果服務(wù)器有客戶端信息,服務(wù)器加上消息交互程序標識,客戶端根據(jù)交互程序標識,選擇相應(yīng)的交互程序與服務(wù)段單獨通訊,服務(wù)器業(yè)務(wù)服務(wù)提供程序接收到客戶端交互程序的請求。作為本專利技術(shù)的進一步實施方式,所述步驟3中,服務(wù)器業(yè)務(wù)服務(wù)提供程序處理客戶端交互程序請求,返回處理結(jié)果;客戶端接收并解析服務(wù)器業(yè)務(wù)提供程序返回的結(jié)果,在瀏覽器中展示。作為本專利技術(shù)的進一步實施方式,所述步驟3中,在客戶端沒有向服務(wù)器發(fā)送消息時,緩存客戶端的消息,以備客戶端查詢,在服務(wù)器沒有客戶端消息時,返回特定標識,讓客戶端延長等待時間。實施例一種基于web的反向數(shù)據(jù)交互方法,包括以下步驟:1.判斷客戶端瀏覽器類型是否支持websocket;2.如支持websocket,則啟用websocket方式進行數(shù)據(jù)交互;3如不支持websocket,則啟用長連接方式進行數(shù)據(jù)交互。在步驟3中,具體包括:(1)客戶端定時向服務(wù)器發(fā)送Ajax心跳包;(2)服務(wù)器接受到心跳包后,查找該客戶端的信息;(3)如果沒有客戶端信息,等待30秒后返回;(4)如果服務(wù)器有客戶端信息,服務(wù)器加上消息交互程序標識;(5)客戶端根據(jù)交互程序標識,選擇相應(yīng)的交互程序與服務(wù)段單獨通訊;(6)服務(wù)器業(yè)務(wù)服務(wù)提供程序接收到客戶端交互程序的請求;(7)服務(wù)器業(yè)務(wù)服務(wù)提供程序處理客戶端交互程序請求,返回處理結(jié)果;(8)客戶端接收并解析服務(wù)器業(yè)務(wù)提供程序返回的結(jié)果,在瀏覽器中展示;(9)在客戶端沒有向服務(wù)器發(fā)送消息時,緩存客戶端的消息,以備客戶端查詢;(10)在服務(wù)器沒有客戶端消息時,返回特定標識,讓客戶端延長等待時間。本專利技術(shù)通過結(jié)合三種數(shù)據(jù)交互方法,確保服務(wù)器與客戶端之間通過最有效的方式進行數(shù)據(jù)交互,使客戶端向服務(wù)器的業(yè)務(wù)請求命中率提升到100%,并使用心跳機制使服務(wù)器的消耗降到最低,極大的提升了服務(wù)器的處理量。以上實施方式和實施例僅用于進一步說明本專利技術(shù)的技術(shù)方案,并不對本專利技術(shù)的保護范圍進行任何限制,本領(lǐng)域普通技術(shù)人員在不通過創(chuàng)造性勞動下所做的變形和潤飾,均應(yīng)屬于本專利技術(shù)的保護范圍之內(nèi)。本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種基于web的反向數(shù)據(jù)交互方法,其特征在于,包括以下步驟:1.判斷客戶端瀏覽器類型是否支持web?socket;2.如支持web?socket,則啟用web?socket方式進行數(shù)據(jù)交互;3.如不支持web?socket,則啟用長連接方式進行數(shù)據(jù)交互。
【技術(shù)特征摘要】
1.一種基于web的反向數(shù)據(jù)交互方法,其特征在于,包括以下步驟:1.判斷客戶端瀏覽器類型是否支持websocket;2.如支持websocket,則啟用websocket方式進行數(shù)據(jù)交互;3.如不支持websocket,則啟用長連接方式進行數(shù)據(jù)交互。2.根據(jù)權(quán)利要求1所述一種基于web的反向數(shù)據(jù)交互方法,其特征在于,步驟3中,長連接方式包括:在客戶端瀏覽器中運行Ajax心跳程序,周期性向服務(wù)器心跳接收程序發(fā)送請求。3.根據(jù)權(quán)利要求2所述一種基于web的反向數(shù)據(jù)交互方法,其特征在于,所述步驟3中,服務(wù)器接收程序收到請求后,處理查詢,如果有查詢結(jié)果,返回結(jié)果標識,如果沒有查詢則鎖定請求一段時間,一段時間之后再次處理該請求,如果還是沒有,則返回?zé)o結(jié)果標識,Ajax心跳程序再次開始周期請求。4.根據(jù)權(quán)利要求3所述一種基于web的反向數(shù)據(jù)交互方法...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:吳沉立,
申請(專利權(quán))人:吳沉立,
類型:發(fā)明
國別省市:北京;11
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。