王小美 常州科信交通科技有限公司
根據(jù)互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,WebSocket基于B/S的技術(shù)逐漸被應(yīng)用廣泛,如現(xiàn)場(chǎng)體育直播中加入體育賽事的圖標(biāo)?;ヂ?lián)網(wǎng)聊天網(wǎng)站的應(yīng)用程序的版本也越來(lái)越復(fù)雜,如在線聊天、網(wǎng)絡(luò)監(jiān)控系統(tǒng)、QQ、微信。在這些應(yīng)用程序中,人們需要接受與發(fā)送消息,其所需網(wǎng)絡(luò)的格式是基于p&p合同和msp同意的工作模式`responseresponse`,也就是說(shuō),用戶通過(guò)Web瀏覽器與客戶端主動(dòng)發(fā)送數(shù)據(jù)請(qǐng)求,使服務(wù)器進(jìn)行請(qǐng)求處理,應(yīng)注意在處理過(guò)程中對(duì)用戶的后續(xù)回復(fù)不應(yīng)以這種方式連接到服務(wù)器,由于這些信息是主動(dòng)傳遞到客戶端的,所以這個(gè)消息屬于實(shí)時(shí)傳送范疇,這些問(wèn)題通用的解決方案是查詢技術(shù),彗星與msp連接問(wèn)題,通過(guò)實(shí)時(shí)發(fā)送一種假定服務(wù)器,以便實(shí)際的客戶端能與用戶建立數(shù)據(jù)連接,在連接過(guò)程中要多次更新Web內(nèi)容。事實(shí)上,在傳輸過(guò)程中浪費(fèi)服務(wù)器資源和傳輸信息空間很容易,彗星連接技術(shù)與某種類似msp連接的服務(wù)器技術(shù)相類似,能夠有效的利用好服務(wù)器資源和傳輸信息空間,通過(guò)ajax引擎瀏覽器請(qǐng)求服務(wù)器響應(yīng),然后瀏覽器通過(guò)ajax向服務(wù)器發(fā)送請(qǐng)求,只有當(dāng)新消息到達(dá)時(shí)才會(huì)進(jìn)行數(shù)據(jù)的再發(fā)送,最后瀏覽器收到回復(fù)再次統(tǒng)一發(fā)送請(qǐng)求。所以這樣會(huì)減少浪費(fèi)資源和傳輸空間,而且持續(xù)時(shí)間變短,當(dāng)數(shù)據(jù)傳輸數(shù)量變少時(shí),服務(wù)器負(fù)擔(dān)也會(huì)隨之減小WebSocket技術(shù)的使用已經(jīng)解決了許多關(guān)于數(shù)據(jù)傳輸效率的問(wèn)題,并很好地解決了服務(wù)器與客戶端的傳輸問(wèn)題,有著良好的應(yīng)用前景。
Windows 7平臺(tái)基于WebSocket協(xié)議,從服務(wù)器進(jìn)行實(shí)時(shí)傳輸,并安裝節(jié)點(diǎn)socket。oio使用socket.oio提供的javascript api,地址在服務(wù)器的末尾。http-mop-socket.io模塊的功能是攔截某個(gè)終端的服務(wù)器總線傳輸數(shù)據(jù),并根據(jù)特定信息地址傳達(dá)并置于客戶端。當(dāng)客戶端收到中斷請(qǐng)求時(shí),該功能就會(huì)被停止并創(chuàng)建一個(gè)鏈接來(lái)設(shè)置執(zhí)行程序返回到服務(wù)器,將信息傳遞給高級(jí)中斷請(qǐng)求。
基于篇幅有限下面只舉段例說(shuō)明:
document.getElementById(`state`).InnerText = ` 和websocket服務(wù)器斷開連接`;
//由于追隨者;
//它是在一臺(tái)服務(wù)器上完成的
var http = require(`http`);//計(jì)費(fèi)http模塊;
var io = require(`socket.io`);
var server = http.CreateServer(function(req,res){
res.end();
});
server.listen(888);
//啟動(dòng)http服務(wù)器的主要功能;
var websocket = io.Listen(server);
websocket.on(`connection`,function(socket){
//客戶端功能,與websocket連接成功
});
//控制臺(tái)與日志(“客戶端”)斷開連接;
許多主流瀏覽器已經(jīng)支持WebSocket,常見的有Chrome,F(xiàn)irefox,IE10,Oprea,Safari,服務(wù)器一般使用鉻陰極射線管來(lái)運(yùn)行服務(wù)器序列,通過(guò)Chrome瀏覽器與客戶端進(jìn)行測(cè)試。服務(wù)器終端分別使用2和3操作Web瀏覽器。程序結(jié)束后,Web瀏覽器連接到WebSocket。它通過(guò)將連接狀態(tài)更改為`WebSocket`。WebSocket提供的數(shù)據(jù)發(fā)射方法提供了一種允許用戶定義的方法。
使用WebSocket實(shí)時(shí)發(fā)送消息的服務(wù)器,能夠高效和簡(jiǎn)潔的解決服務(wù)器和服務(wù)器之間的連接問(wèn)題。并建立節(jié)點(diǎn).js,使節(jié)點(diǎn).js的單向調(diào)度不會(huì)發(fā)生干擾。
因其使用特性,如果節(jié)點(diǎn).js性能變得異常,它將被磨損消耗。因此幾十個(gè)js節(jié)點(diǎn)并接在WebSocket中的操作系統(tǒng)是好的,能夠進(jìn)行實(shí)時(shí)信息傳遞。并且這個(gè)http連接由任何一方所有的傳輸過(guò)程都是實(shí)時(shí)的,這就大大縮短了傳輸時(shí)間。與傳統(tǒng)的解決方案ajax相比,其優(yōu)勢(shì)特點(diǎn)很明顯。WebSocket協(xié)議系統(tǒng)能實(shí)時(shí)進(jìn)行互聯(lián)網(wǎng)推送消息,并隨著HTML5技術(shù)的迅速發(fā)展,相信WebSocket技術(shù)肯定會(huì)得到更廣泛的應(yīng)用。