国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

客戶端-服務(wù)器端互動(dòng)比較與原生實(shí)例(比較ajax,server-sentevent,websocket/netsocket)

2019-11-14 15:48:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

昨日學(xué)習(xí)了websocket的原生實(shí)例,覺(jué)得有必要把幾種常見的客戶端-服務(wù)器端無(wú)刷新交互形式列舉比較:

一、Ajax:客戶端決定何時(shí)主動(dòng)向Server端發(fā)請(qǐng)求

如:無(wú)刷新評(píng)論、無(wú)刷新更換圖片。

主要目的是為了無(wú)刷新客戶體驗(yàn),但都是客戶端的操作來(lái)觸發(fā)向Server發(fā)送請(qǐng)求。

實(shí)例網(wǎng)上很多,原生的js或封裝了的jQurey都算比較常用、易懂、易自助修改的方式。

二、Server-sent event:定時(shí)由Server端向客戶端推送內(nèi)容

如:每秒推送股市動(dòng)態(tài)、每秒推送體育比賽文字轉(zhuǎn)播。

特點(diǎn)是客戶端只需要發(fā)送一次“來(lái)吧,請(qǐng)蹂躪我吧”的請(qǐng)求(可打開頁(yè)面就自動(dòng)發(fā)送,減少用戶操作),Server就定時(shí)推送。缺點(diǎn)是耗流量。

原生實(shí)例可參照vevb:服務(wù)器發(fā)送事件(http://m.survivalescaperooms.com.cn/html5/html_5_serversentevents.asp

三、Socket網(wǎng)絡(luò)通信:雙方平等,自由交互,我想發(fā)給你時(shí)你才需要接收

如:聊天場(chǎng)景。

特點(diǎn)是省流量,客戶端什么時(shí)候想發(fā)就發(fā),服務(wù)器端什么時(shí)候想回就回,兩邊都有監(jiān)聽者socket在負(fù)責(zé)。

我最初學(xué)習(xí)的是.Net Socket,是基于.net框架的網(wǎng)絡(luò)通信,一般實(shí)例用的控制臺(tái)程序或WinForm來(lái)做。

昨日新接觸了WebSocket,與Net Socket主要區(qū)別是面向?yàn)g覽器端(用web所以叫websocket),需要HTML5支持,瀏覽器大都支持(ie10以上,最新FF、Chrome都支持,聽說(shuō)Safari曾覺(jué)得此技術(shù)不安全暫時(shí)取消了支持),最可惜是需要.net4.5及以上版本才可以,即:.net4.0下是沒(méi)有System.Web.WebSocket這個(gè)命名空間(不知道另導(dǎo)dll有沒(méi)有用)——然而WinServer2003最多支持到.net4.0……

.net4.0下又想用web的形式、又想用socket:NetSocket做成控制臺(tái)程序,ui繼續(xù)用web(html+js)發(fā)送ws協(xié)議的請(qǐng)求到控制臺(tái)程序即可。

原生實(shí)例參考:Leo的(http://m.survivalescaperooms.com/Leo_wl/archive/2013/04/12/3016063.html),文章提及了上述的形式,僅有一處筆誤:GetSecKeyAccept()方法中附加的字符串少了一個(gè)“-”(在E914之前)。應(yīng)該是:byte[] encryptionString = SHA1.Create().ComputeHash(Encoding.ASCII.GetBytes(key + "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"));

筆者也寫了一份實(shí)例demo,支持多開web對(duì)同一server進(jìn)行通信,請(qǐng)看筆者“在線捉鬼”系列的svn代碼:

svn地址:https://115.29.246.25/svn/CatGhost/  賬號(hào):guest  密碼:guest

第12版本日志:

1. 模擬服務(wù)器端:?jiǎn)?dòng)NetSocketDemo.Server項(xiàng)目

2. 模擬客戶端:訪問(wèn)Catghost.WebSocketDemo項(xiàng)目的Demo40.html頁(yè)面(可多開)

四、其他關(guān)鍵詞:SignalR(服務(wù)器推送),輪詢,Socket4Net(客戶端封裝),SuperSocket(服務(wù)器端封裝)

在學(xué)習(xí)的過(guò)程中遇到較多的其他關(guān)鍵詞,列出以備讀者拓展學(xué)習(xí)。

SignalR還沒(méi)學(xué)過(guò),輪詢是概念理解。

Socket4Net是對(duì)Socket的客戶端封裝:http://websocket4net.codeplex.com

SuperSocket是對(duì)Socket的服務(wù)器端封裝:http://superwebsocket.codeplex.com


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 墨脱县| 名山县| 云安县| 和平县| 湘潭市| 永仁县| 北宁市| 孝感市| 青阳县| 镇原县| 漠河县| 招远市| 绵阳市| 屏南县| 渝北区| 澄江县| 九龙坡区| 勃利县| 喀喇沁旗| 措美县| 兰溪市| 章丘市| 正宁县| 阿拉善右旗| 临泉县| 咸宁市| 天门市| 虞城县| 唐河县| 攀枝花市| 庆城县| 岳池县| 松阳县| 门头沟区| 宁陕县| 诸城市| 井研县| 天津市| 竹北市| 邮箱| 忻州市|