日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

一起来用Websocket(一)开篇 Websocket!Socket在HTML5复活

發(fā)布時間:2025/4/14 HTML 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一起来用Websocket(一)开篇 Websocket!Socket在HTML5复活 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一起來用Websocket(一)開篇 WebsocketSocketHTML5復(fù)活

?? 前言?

?? ? ? HTML5中有一個比較好用的特性,就是Websocket。現(xiàn)在已集成在chrome的較新版本中。由于前段時間在項目中有用到Websocket,感到Websocket真是HTML5中比較強大的功能?,F(xiàn)在抽點時間,總節(jié)一下在.net中使用Websocket 要注意的地方。同時,由于園子里關(guān)于Websocket的文章不多,希望能起到拋磚引玉的作用,希望能和大家一起討論更好的實現(xiàn)方式,形成更好的應(yīng)用。

?? ? ?如果可以的話,希望能形成我們.net社區(qū)自己的Websocket 框架(類似jWebsocket)。最近,業(yè)余時間我也時行了jWebsocket轉(zhuǎn).net版本的開發(fā)和測試工作,希望能借這個專題,把這個框架和大家一起完善起來,也希望有興趣的朋友加入一同開發(fā),相信我們能得很多。

下面言規(guī)正轉(zhuǎn),開始談Websocket吧。

?? 示例?

?? ? 下面有一個類似在線留言的例子:http://HTML5demos.com/web-socket。

大家一眼能看出來吧,這個沒啥特別的呀,不是和AJAX差不多吧。我用JQuery或者Xmlhttprequest或其它js框架都可以很快寫出來呀。其實,Websocket也可以被拿來當用AJAX框架來用,不過,這樣太大材小用了。這個示例中有幾個細節(jié):

第一、? 初始,連接未建立。


上圖所示”Not connected”.表示,連接還未建立。

第二、? 連接建立。


等一段時間后,原來灰色部分會變成綠色的“Socket Open”,表示連接已經(jīng)建立了。

大家也可能注意到,我在文本框中輸入了內(nèi)容后,按回車后,在最下面的部份就出來了我發(fā)的內(nèi)容。

第三、? Socket open 常連接。

我們發(fā)現(xiàn),我們一段時間不退出,狀態(tài)還是綠色的“Socket Open”。說明,連接還是一直存在的。其次,這里使用的是Socket,也就是說,剛才的留言板是在線的,實時的留言板,相當于一個聊天室,大家都可以看到你在線的狀態(tài)。是不是很令人激動。沒錯,我們的socket又復(fù)活了,在后臺,使用的就是socket的程序,其語言可以是Java、C#、PHP等其它可以監(jiān)聽或編寫socket應(yīng)用的語言。

好,上面的例子過后,我們來正式對比一下WebsocketHTTP的區(qū)別吧:

規(guī)定平臺Websocket服務(wù)器和谷歌瀏覽器,或Websocket服務(wù)器與ws客戶端程序之間數(shù)據(jù)傳送的格式協(xié)議,軟件設(shè)計應(yīng)按照此協(xié)議進行。

?? ?HTTP的三個問題:

?? ?(1)為一個WEB客戶端潛在的建產(chǎn)多個TCP連接。

?? ?(2)有一個大的HTTP頭,以滿足HTTP協(xié)議。

?? ?(3)客戶端的腳本必須為輸入連接和輸出連接建立一個映射,以確定回復(fù)。

?? ?(4)基于請求-響應(yīng)模式,HTTP服務(wù)端不能主動推送(push)數(shù)據(jù)到客戶端。

?? Websocket的三個好處:

(1)?????? 一個WEB客戶端只有一個TCP連接。

(2)?????? Websocket服務(wù)端可以推送數(shù)據(jù)到web客戶端.

(3)?????? 輕量級的頭,減少數(shù)據(jù)傳送量

(4)?????? 服務(wù)端可以主動推送數(shù)據(jù)到客戶端

(5)?????? 已成功應(yīng)用于游戲、股票交易等用多用戶實時系統(tǒng)中。

(6)?????? 支持多客戶端,Web客戶

(7)?????? 客戶端開發(fā)接口簡單

?

?? Websocket客戶端開發(fā)接口

?? ? ?如下圖所示:

提供下面三個接口?

?? ? ?onopen: 當接口打開時

onmessage: 當收到信息時

onclose: 當接口關(guān)閉時

上面的幾個方法已在chrome瀏覽器中得到支持,開發(fā)接口也相對簡單。

?


?? 本篇總結(jié)

1.????Websocket就是借著?HTML5在瀏覽器中加了一個socket通信程序的客戶端。你在安裝瀏覽器的時候,默認裝了一個客戶端,可以向服務(wù)端請求,并建產(chǎn)鏈接。然后再像原先的socket應(yīng)用程序一樣來回互相發(fā)送消息。

2.????Websocket不是一個新技術(shù),只是HTML5中用javascript提供了一些接口,讓你調(diào)用。服務(wù)端還是任何一門支持Socket通信的語言就行。

3.????Websocket的應(yīng)用。可以應(yīng)用在很的領(lǐng)域,游戲,股票。簡單說主要是一些多用戶的實時應(yīng)用。也可實現(xiàn)類似和webqq一樣的網(wǎng)頁聊工具。

4.????Websockethttp協(xié)議輕量化了,在web交互中,我們再也不用讓http包了一層又一層,而了去滿足我們不需要的功能了。我們只要簡單傳我們想要的數(shù)據(jù),協(xié)議我們可以在Websocket這種輕量級協(xié)議下,制定我們自己的子協(xié)議,可以減少不少的交互和網(wǎng)絡(luò)流量哦。

?? ? ??后面幾篇會慢慢介紹,也歡迎大家一起討論 ^-^。

?

?? 引用:

?? ? ?[1] jWebsocket(java服務(wù)端和客戶端websocket框架)

?? ? ?http://jwebsocket.org/

?? ? ?[2] Websocket協(xié)議(本協(xié)議應(yīng)用較為多,也比較全了)http://tools.ietf.org/HTML/draft-hixie-theWebsocketprotocol-76

?? ? ?[3] HTML5 Websockets 基礎(chǔ)使用教程

?? ? ??http://kb.cnblogs.com/page/72745/


?? 大綱預(yù)告?

?? ? ? ??一起來用Websocket(一):[開篇]WebsocketSocketHTML5復(fù)活

?? ? ? ??一起來用Websocket(二):Websocket協(xié)議詳細分析

?? ? ? ??一起來用Websocket(三):開源Websocket框架--jWebsocket簡介

主要功能,在線示例

?? ? ? ??一起來用Websocket(四):開源Websocket框架jWebsocket的架構(gòu)設(shè)計

?? ? ? ??一起來用Websocket(五):jWebsocket中的權(quán)限和配置

?? ? ? ??一起來用Websocket(六):jWebsocket框架中的數(shù)據(jù)包處理

?? ? ? ??一起來用Websocket(七):jWebsocket 框架中的過濾器

?? ? ? ??一起來用Websocket(八):jWebsocket框架中的常用工具類說明

?? ? ? ?一起來用Websocket(九):jWebsocket.NET版本NWebsocket

?? ?? ?一起來用Websocket(十):NWebsocket中的二次開發(fā)

服務(wù)端插件 客戶端插件

???? ? ?一起來用Websocket(十一):NWebsocket框架開發(fā)實例

?? ?? ?一起來用Websocket(十二):在NWebsocket中應(yīng)用高性能通信引擎?

轉(zhuǎn)載于:https://www.cnblogs.com/dtdnh520/archive/2010/11/09/1873095.html

總結(jié)

以上是生活随笔為你收集整理的一起来用Websocket(一)开篇 Websocket!Socket在HTML5复活的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。