亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ASP.NETSignalR的實時Web功能的實現

        2016-11-14 00:43:31李燕
        電腦知識與技術 2016年24期

        李燕

        摘要:傳統(tǒng)Web網站中客戶端獲取服務器數據只能刷新頁面或使用Ajax輪詢才能實現實時顯示數據,微軟開發(fā)的SignalR服務端可主動向客戶端推送數據,實現了客戶端與服務器實時數據通信。該文介紹了SiganlR技術及在Web網站中的應用。

        關鍵詞:實時通信;實時Web功能;數據總線;SignalR

        中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)24-0062-02

        1 概述

        在網站開發(fā)中經常需要實現實時Web功能,即當所連接的客戶端變得可用時服務器代碼可立即向其推送內容,而不是讓服務器等待客戶端請求新的數據。在以前的Web網站技術中,客戶端要獲取服務器數據需通過不停地發(fā)送請求來輪詢服務端數據。這種發(fā)送Ajax請求給服務器的方式,在用戶量很大的情況下給服務器帶來很大的壓力,而定時刷新很多時候滿足不了對實時性要求較高的需求,比如聊天室應用,管制現場流控信息傳遞等,都要求實時更新。ASP.NET SignalR是這一問題比較好的解決方案。

        2 SignalR概述

        SignalR是微軟對Web開發(fā)技術棧的擴充,是一種可用來簡化交互式實時多用戶Web應用程序開發(fā)的框架,利用SignalR,可以真正實現了Web客戶端和服務器之間雙向通信。服務器可以將內容推送到已連接的客戶端。

        SignalR提供一個簡單的API用于創(chuàng)建服務器端到客戶端的遠程過程調用,以便從服務器端.Net代碼中調用客戶端瀏覽器中的JavaScript函數。SignalR還包括用于管理連接(例如連接和斷開連接事件)和為連接分組的API。SignalR會自動管理連接,允許向所有連接的客戶端同時發(fā)送消息,也可以向特定客戶端發(fā)送消息??蛻舳撕头斩说倪B接是持久性的,不像傳統(tǒng)的HTTP連接——每次通信都需要重新建立一個連接。

        SignalR是對一組在構建客戶端和服務器之間的real-time功能所需要使用的傳輸技術的抽象。SignalR連接首先以HTTP發(fā)起請求,然后如果WebSocket可用的話,則升級到WebSocket連接。WebSocket是SignalR的理想傳輸方式,因為它能夠高效的使用服務器的內存、有最低的延遲,而且有最主要的功能(客戶端和服務器之間的全雙工通信),但它也有最嚴格的環(huán)境要求:WebSocket要求服務器是Windows Server2012或Windows8以及.NET Framework4.5。如果不滿足這些要求,SignalR將嘗試使用其他傳輸方式來建立連接??傊琒ignalR以一種相對于開發(fā)者透明的方式確定服務器和客戶端之間最佳的通信技術方案(長輪詢、forever frame、Server-Sent Events、WebSocket),然后使用這種技術創(chuàng)建一條底層的連接并保持該連接的永久開放,并對連接的斷開和重連接進行自動管理,如圖1所示:

        SignalR在用來保持和服務器連接的傳輸層之上還存在著兩個不同的抽象層,它們構成了使用所建立虛擬連接的兩個API或兩套規(guī)則。其中一個被稱作持久連接(Persistent Connection),這是一個較低的層,因此離真實的連接較近,提供了一個非常類似套接字編程的開發(fā)API。第二個抽象層基于一個稱為Hub的組件,是一個建立于連接API的高級管道?;贘avascript的靈活性和C#的動態(tài)特性,Hub消弭了客戶端和服務器這兩個獨立物理環(huán)境之間的界限,它使得客戶端調用服務端的方法簡單得猶如調用本地方法一樣,反之亦然。使用Hub還可以將強類型參數傳遞給方法,并且可用綁定模型。這兩個抽象層之間的關系如圖2所示:

        SignalR允許我們透明地在客戶端和服務器之間直接進行方法調用,是如何做到的呢?這并沒有什么神奇之處,為了實現這樣的功能,SignalR將借助服務器Hub類在客戶端自動創(chuàng)建代理對象,并在它們的方法中輸入對它們實際方法的遠程調用。相反,當服務器調用客戶端某個方法時,它將被一個在服務端“打包”這些調用的動態(tài)類型的特殊協議所解析,并使用底層傳輸通過推送(push)將它們發(fā)送到其它端點。然后它們將到達客戶端,并在這里進行解析和執(zhí)行。過程如下圖所示:

        4 結束語

        SignalR是實現實時通信功能的有效解決方案,利用SignalR可以創(chuàng)建對消息實時性要求比較高的應用,如在線協作工具、多用戶游戲、實時信息服務等。在Web應用方面,如果有通過刷新頁面來查看數據或者是通過頁面實現長輪詢來檢索數據等需求,那么就可以考慮使用SiganlR了。

        參考文獻:

        [1] Patrick Fletcher. [EB/OL]http://www.asp.net/signalr/overview[E B/OL].

        [2] 張占嶺.SignalR實現服務器與客戶端的實時通信[Z].

        国产成人亚洲精品77| 国产农村熟妇videos| 蜜桃视频一区二区三区在线观看| 国产午夜亚洲精品不卡福利| 亚洲国产精品夜男人天堂| 亚洲97成人在线视频| 亚洲欧美乱综合图片区小说区| 亚洲男人天堂2019| 国产亚洲av手机在线观看| 国产饥渴的富婆一凶二区| 欧美人做人爱a全程免费| 精品国产高清a毛片无毒不卡| 91色婷婷成人精品亚洲| 中文字字幕在线中文乱码解| 无码人妻精品一区二区蜜桃网站| 极品尤物高潮潮喷在线视频| 免费高清视频在线观看视频| 亚洲精品久久区二区三区蜜桃臀 | 日本高清视频wwww色| 日日摸夜夜添无码无码av| 在线成人tv天堂中文字幕| 青青青爽在线视频免费播放| 欧美激情在线播放| 成人片黄网站色大片免费观看app| 国产人成视频免费在线观看| 97超碰国产成人在线| 中国女人做爰视频| 人妻无码Aⅴ中文系列| 青青视频在线播放免费的| 丰满熟妇人妻av无码区| 香蕉久久人人97超碰caoproen| 无码视频一区=区| 亚洲综合第一页中文字幕| 99精品人妻少妇一区二区| 欧美日韩区1区2区3区| 网址视频在线成人亚洲| 亚洲性久久久影院| 91日本精品国产免| 亚洲视一区二区三区四区| 欧美亚洲精品suv| 亚洲av日韩av无码av|