国产探花免费观看_亚洲丰满少妇自慰呻吟_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://www.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://www.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ā)表
主站蜘蛛池模板: 安乡县| 沧州市| 曲水县| 武功县| 平乐县| 英山县| 洛宁县| 兖州市| 枣阳市| 左权县| 景德镇市| 独山县| 玉环县| 温州市| 镶黄旗| 成武县| 旬邑县| 外汇| 连州市| 神池县| 增城市| 剑阁县| 酒泉市| 墨玉县| 鄂托克前旗| 临武县| 谷城县| 嘉兴市| 化德县| 会理县| 定南县| 嘉义县| 郴州市| 宽城| 衡阳县| 中宁县| 仪陇县| 灵宝市| 老河口市| 贵港市| 新巴尔虎左旗|