国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

WebSocket協(xié)議在電商平臺(tái)中的應(yīng)用

2018-10-26 11:32唐淑華王遵義
科技資訊 2018年10期
關(guān)鍵詞:客戶滿意度數(shù)據(jù)傳輸

唐淑華 王遵義

摘 要:在飛速發(fā)展的現(xiàn)代社會(huì),及時(shí)、有效、準(zhǔn)確的信息傳送對(duì)各行各業(yè)發(fā)展尤為重要。B2C模式下的電商企業(yè),客戶滿意度顯著的影響著它的發(fā)展,提高客戶的消費(fèi)體驗(yàn)十分必要,因此,準(zhǔn)確、有效、及時(shí)的信息傳送就顯得尤為重要。傳統(tǒng)的基于HTTP協(xié)議的單向信息傳送方式已無法滿足人們的需求,社會(huì)需要更加高效的方式。而WebSocket協(xié)議是一種典型的雙向通信協(xié)議,它與HTTP一樣是通過TCP來傳輸數(shù)據(jù),與HTTP不同的是,WebSocket協(xié)議的客戶端與服務(wù)端在一次握手成功后就可以無數(shù)次進(jìn)行數(shù)據(jù)的發(fā)送與接收,極大限度地保證了信息的時(shí)效性。

關(guān)鍵詞:客戶滿意度 WebSocket協(xié)議 數(shù)據(jù)傳輸 雙向通信

中圖分類號(hào):TP311.5 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2018)04(a)-0020-02

電商行業(yè)經(jīng)過多年的發(fā)展,如今已進(jìn)入一個(gè)全面發(fā)展的階段。網(wǎng)購(gòu)成為很多人的一個(gè)消費(fèi)習(xí)慣,甚至成為一種生活樂趣。但是網(wǎng)購(gòu)過程中我們也經(jīng)常遇到一些問題,典型的一個(gè)就是缺貨問題。想買的東西斷貨了,什么時(shí)候到貨也不確定,也沒有提醒。WebSocket技術(shù)能有效解決上述問題。

1 WebSocket協(xié)議介紹

WebSocket技術(shù)實(shí)現(xiàn)了信息的雙向通信,能夠有效應(yīng)對(duì)如今信息傳輸不及時(shí)的問題。由于WebSocket技術(shù)是一項(xiàng)比較新的技術(shù),它的應(yīng)用相對(duì)較少,相關(guān)資料也比較缺乏,美國(guó)Danny Coward的《Java WebSocket編程》就比較詳細(xì)地介紹了該技術(shù),相關(guān)資料還有趙振等主編的《Web異步與實(shí)時(shí)交互iframe AJAX WebSocket 開發(fā)實(shí)戰(zhàn)》等。隨著信息技術(shù)以及社會(huì)去求得發(fā)展,相信很快WebSocket技術(shù)就會(huì)大范圍的應(yīng)用,在現(xiàn)實(shí)社會(huì)中發(fā)揮更大的作用。

WebSocket協(xié)議與Http協(xié)議存著差異?;贖TTP協(xié)議的Web應(yīng)用是一種無狀態(tài)單向的協(xié)議,它是由客戶端主動(dòng)發(fā)起握手請(qǐng)求,建立連接。然而很多情況下服務(wù)端才是信息的發(fā)布者,這就產(chǎn)生了矛盾,信息更新時(shí)間不確定,當(dāng)出現(xiàn)新的信息,服務(wù)器卻不能主動(dòng)發(fā)送,導(dǎo)致了信息的延緩。為解決這類問題,也提出了“輪詢”的方式來獲得最新的信息,但是這樣占用了大量的帶寬,并且每次發(fā)送請(qǐng)求都會(huì)攜帶大量的協(xié)議頭信息,造成資源浪費(fèi)。ajax輪詢、long poll都不能有效解決該問題。ajax輪詢的原理是讓瀏覽器每隔個(gè)幾秒發(fā)送一次請(qǐng)求,詢問服務(wù)器是否有新信息。long poll原理與ajax輪詢相似,也是采用輪詢的方式,不同的是long poll采取的是阻塞模型,即客戶端發(fā)起連接后,如果沒有消息產(chǎn)生,就不返回response給客戶端,直到有消息才返回,返回之后,客戶端再次建立連接。為解決這類問題,很多其他的協(xié)議陸續(xù)出現(xiàn),WebSocket協(xié)議就是典型的異步全雙工通信機(jī)制,它實(shí)現(xiàn)了服務(wù)端與客戶端的雙向通道[1]。

相較于HTTP協(xié)議,WebSocket協(xié)議能夠節(jié)省很多不必要的流量,減少占用網(wǎng)絡(luò)資源,減少信息的延緩?fù)瑫r(shí)節(jié)約了服務(wù)器資源。WebSocket協(xié)議僅需一次握手,當(dāng)連接完成,服務(wù)端與客戶端就可以自由發(fā)送數(shù)據(jù)、信息,直至TCP關(guān)閉握手。

2 WebSocket事件、方法

WebSocket對(duì)象可以觸發(fā)4種事件,在建立連接后觸發(fā)open事件,客戶端在收到服務(wù)端發(fā)送的數(shù)據(jù)時(shí)觸發(fā)message事件,在通信過程中如發(fā)生錯(cuò)誤是觸發(fā)error事件,在連接關(guān)閉時(shí)觸發(fā)close事件[2]。

WebSocket對(duì)象有發(fā)送數(shù)據(jù)的send()方法和關(guān)閉連接的close()方法。send()方法是在服務(wù)端和客戶端建立連接后調(diào)用,close()是在數(shù)據(jù)傳送結(jié)束調(diào)用。

2.1 WebSocket案例

WebSocket最常見的案例是聊天室系統(tǒng)。客戶端部分,使用Chat.socket.onopen()觸發(fā)onopen事件建立連接,用send方法將message對(duì)象發(fā)送至服務(wù)端。程序運(yùn)行過程中,首先調(diào)用Chat.initialize()函數(shù)判斷該傳輸協(xié)議的類型是https還是http,https協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的,相較于http更加安全。接下來還需要判斷所用瀏覽器是否支持WebSocket,最早支持WebSocket協(xié)議的瀏覽器應(yīng)該是chrome,而目前流行的瀏覽器基本能夠支持WebSocket協(xié)議,例如:Chrome、Firefox、IE等,該判斷方法是調(diào)用Chat.connect(host)。信息的發(fā)送以及接收調(diào)用了Chat.sendMessage()、Chat.socket.onmessage()方法。最后調(diào)用Chat.socket.onclose()方法觸發(fā)onclose事件關(guān)閉連接。這里并未用到onerror事件,@onerror一般可以用來注解WebSocket端點(diǎn)的方法,使得它能夠處理WebSocket實(shí)現(xiàn)處理入站消息時(shí)發(fā)生的任何的錯(cuò)誤[2]。前臺(tái)要用WebSocket連接到后臺(tái),需要新建一個(gè)WebSocket對(duì)象,然后就可以和服務(wù)器端進(jìn)行交互,也就是瀏覽器發(fā)送消息給服務(wù)器端,同時(shí)要驗(yàn)證輸入框的內(nèi)容是否為空,然后接受服務(wù)端發(fā)送的消息,把它動(dòng)態(tài)地添加到聊天框中。

服務(wù)端部分,首先定義一個(gè)WebSocket服務(wù)端。value

作為訪問地址。本個(gè)例子中:客戶端連接到服務(wù)端,Set connections用于存儲(chǔ)聊天室中的連接實(shí)例。@OnOpen,連接創(chuàng)建時(shí)調(diào)用的方法,@OnClose,連接關(guān)閉時(shí)調(diào)用的方法,@OnMessage,傳輸信息過程中調(diào)用的方法,@OnError,發(fā)生錯(cuò)誤時(shí)調(diào)用的方法。broadcast(String msg),通過connections,對(duì)所有其他用戶推送信息的方法[3]。

2.2 WebSocket協(xié)議在電商平臺(tái)中的應(yīng)用

就WebSocket協(xié)議的特點(diǎn),提出以電商平臺(tái)為背景,進(jìn)行信息的主動(dòng)傳遞。當(dāng)客戶看中某個(gè)商品,商家斷貨了,此時(shí)客戶可使用到貨提醒按鈕。同時(shí)服務(wù)器會(huì)將該用戶的操作存入數(shù)據(jù)庫(kù),當(dāng)該商品再次上架,庫(kù)存大于0,立刻向用戶發(fā)送多次的提醒。這里的客戶端可以是網(wǎng)頁也可以是安卓用戶,服務(wù)器主動(dòng)發(fā)送提醒的操作就是使用WebSocket協(xié)議。實(shí)驗(yàn)過程如圖1所示,實(shí)驗(yàn)結(jié)果如圖2所示??梢钥闯霎?dāng)用戶忘記或者忽略了提醒,服務(wù)器可以多次不斷提醒用戶信息,直到商品再次售完或者用戶關(guān)閉了此提醒。

使用WebSocket協(xié)議的這一設(shè)計(jì),一來可以節(jié)約帶寬、流量的成本,二來其實(shí)時(shí)性高于普通的協(xié)議,能夠及時(shí)有效地提醒客戶,提高客戶滿意度,促進(jìn)商品的銷售,有利于企業(yè)的發(fā)展。

雖然部分瀏覽器還不支持此協(xié)議,但隨著信息技術(shù)的發(fā)展,實(shí)時(shí)技術(shù)的需求不斷擴(kuò)大,WebSocket協(xié)議所構(gòu)建的應(yīng)用程序必然會(huì)不斷完善,風(fēng)險(xiǎn)性不斷減低,WebSocket協(xié)議必將成為重要的、普遍的開發(fā)協(xié)議。

參考文獻(xiàn)

[1] 聶開,張莎莎,王玨輝.WebSocket技術(shù)在Web端和服務(wù)端之間的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2016(7):77.

[2] (美)Danny Coward,著.Java WebSocket編程[M].劉建,夏先波,譯.北京:清華大學(xué)出版社,2015:31-38.

[3] 趙振,王順,于夢(mèng)竹.Web異步與實(shí)時(shí)交互iframe AJAX WebSocket 開發(fā)實(shí)戰(zhàn)[M].北京:人民郵電出版社,2016:72-80.

猜你喜歡
客戶滿意度數(shù)據(jù)傳輸
基于Ad Hoc的微震監(jiān)測(cè)數(shù)據(jù)傳輸系統(tǒng)設(shè)計(jì)
考慮客戶滿意度的電子商務(wù)商品信息推送效果測(cè)評(píng)方法
民生銀行客戶滿意度預(yù)警測(cè)評(píng)及其實(shí)證探析
民生銀行客戶滿意度預(yù)警測(cè)評(píng)及其實(shí)證探析
基于ZigBee 的井下探測(cè)小助手設(shè)計(jì)
GPRS DTU的應(yīng)用經(jīng)驗(yàn)淺析