ASP.NET SignalR介紹


是什么?

簡單來說,ASP.NET SignalR是一個開源的實時通訊(real-time)庫,有了ASP.NET SignalR,我們可以在

詳細介紹參考:https://docs.microsoft.com/en-us/aspnet/signalr/overview/getting-started/introduction-to-signalr#what-is-signalr

應用場景

從介紹可以看出,ASP.NET SignalR是為實時通訊而生的,所以典型的應用場景有:

  • 支付回調
  • 聊天室
  • 環境要求

    一,服務器端

    1,操作系統

  • 服務器端支持的操作系統如下:
  • Windows Server 2008 r2
  • Windows Server 2012
  • Windows Server 2016
  • 注意:如果要使用WebSockets,要求操作系統Windows Server 2012+。

    2,.net framework

    支持.net framework 4.5+。

    3,IIS

    IIS 7+並且需要集成模式。

    二,客戶端

    1,操作系統

    客戶端支持的操作系統為Windows 7+。

    2,瀏覽器

  • IE8+
  • Firefox的所有版本
  • Chrome的所有版本
  • Safari的所有版本
  • Opera的所有版本
  • 注意:jQuery的版本必須>=1.6.4。

    原理

    1,客戶端和服務端的交互如下圖:

    使用SignalR调用方法

    2,ASP.NET SignalR的架構圖:

    SignalR Architecture Diagram显示API,传输和客户端

    傳輸協議的協商

    默認情況下,SignalR會自動協商傳輸協議,協商的過程如下:

  • 如果瀏覽器是Internet Explorer 8或更早版本,則使用長輪詢。

  • 如果配置了JSONP(即,在啟動連接時將jsonp參數設置為true),則使用長輪詢。

  • 如果正在建立跨域連接(即,如果SignalR端點與托管頁面不在同一個域中),則在滿足以下條件時將使用WebSocket:

  • 客戶端支持CORS(跨源資源共享)。有關哪些客戶端支持CORS的詳細信息,請參閱caniuse.com上的CORS

  • 客戶端支持WebSocket

  • 服務器支持WebSocket

    如果不滿足任何這些標准,將使用長輪詢。有關跨域連接的詳細信息,請參閱如何建立跨域連接

  • 如果未配置JSONP且連接不是跨域連接,則如果客戶端和服務器都支持,則將使用WebSocket。

  • 如果客戶端或服務器不支持WebSocket,則使用Server Sent Events(如果可用)。

  • 如果“服務器已發送事件”不可用,則嘗試使用“永久幀”。

  • 如果Forever Frame失敗,則使用長輪詢。

  • 入門Demo

    源代碼地址:https://github.com/mcgrady525/GettingStarted.SignalR


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM