<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SignalR 填坑記

       

      1.發送文字消息沒有問題,如何發送文件消息

      SignalR可以將參數序列化和反序列化. 這些參數被序列化的格式叫做Hub 協議, 所以Hub協議就是一種用來序列化和反序列化的格式.

      Hub協議的默認協議是JSON, 還支持另外一個協議是MessagePack. MessagePack是二進制格式的, 它比JSON更緊湊, 而且處理起來更簡單快速, 因為它是二進制的.

      但我們使用的版本暫時沒有此功能,所以建議還是采用Base64傳輸。

       

      2.發送文件時,如果文件過大,服務端無法接收

      Signalr MessageSize默認是64K 大小,設為NULL即禁用這個限制 ,自己也可以按需求改為自己需要的大小

      GlobalHost.Configuration.MaxIncomingWebSocketMessageSize = null;

       

      3.如果出現內存過高,建議更改此值

      GlobalHost.Configuration.DefaultMessageBufferSize = 20;

      DefaultMessageBufferSize:默認情況下,SignalR 將保留在內存中的每個中心的每個連接的 1000 條消息。 如果使用大型消息時,這可能會造成內存問題,這可以通過減小此值來緩解這。 此設置可以設置Application_Start事件處理程序在 ASP.NET 應用程序,或在Configuration自承載的應用程序中的 OWIN 啟動類的方法。 下面的示例演示如何以減少應用程序,以減少使用的服務器內存量的內存占用減小此值:

       

      4.Core與Net Framework間能否通信

      Core版本的SignalR 不能與Net Framework版本的通信。所以客戶端和服務端 必須是支持Core版本的SignalR。

      5.Core版本的SignalR 方法命名方式使用駝峰命名法

      以前服務端使用大寫,客戶端使用小寫,現在在Core版本已經統一

       

      ignalR技術在 ASP.NET Core 和 ASP.NET下有不同的實現,二者之間是存在差異的。所以在學習之前你應該搞懂他們之間的差異性,這有助你選擇合適的框架。

      本文知識來源 ASP.NET Core官方文檔:https://docs.microsoft.com/zh-cn/aspnet/core/signalr/version-differences?view=aspnetcore-2.2

       

        ASP.NET SignalR ASP.NET Core SignalR
      服務器 NuGet 包 Microsoft.AspNet.SignalR Microsoft.AspNetCore.App (.NET Core) Microsoft.AspNetCore.SignalR (.NET Framework)
      客戶端 NuGet 包 Microsoft.AspNet.SignalR.Client Microsoft.AspNet.SignalR.JS Microsoft.AspNetCore.SignalR.Client
      客戶端 npm 包 signalr @aspnet/signalr
      服務器應用類型 ASP.NET (System.Web) 或 OWIN 自承載 ASP.NET Core
      受支持的服務器平臺 .NET framework 4.5 或更高版本 .NET Framework 4.6.1 或更高版本 .NET core 2.1 或更高版本

      服務端的差異

      1、刪除 PersistentConnection

      了解ASP.NET SignalR的筆友都知道,在此版本中存在PersistentConnection(持久連接)和 Hubs(集線器),PersistentConnection 處于較底層,定義了眾多socket操作api。但是在.NET Core 中,微軟已經移除了該實現,保留了抽象度更高的Hubs。

      2、GlobalHost

      在ASP.NET MVC和Web Api 中如果想集成SignalR,我們會使用如下代碼獲取:

      GlobalHost.ConnectionManager.GetHubContext<T>();

      但是在.NET Core 中需要使用DI訪問HubContext。

      3、刪除HubState

      類似下面這種通過客戶端定義變量,服務端可以直接使用的方式,在.NET Core 中已不被支持。

      1
      2
      3
      4
      5
      // 客戶端代碼(Javascript)
      hubProxy.state.UserName="mike"
      hubProxy.state.MsgId=1;
       
      hubProxy.server.alert("");
      1
      2
      3
      4
      5
      6
      // 服務端代碼
      public Task Alert(string msg)
      {
         Console.WriteLine("UserName:"+ Clients.Caller.UserName);
         Console.WriteLine("MsgId:"+ Clients.Caller.MsgId);
      }

       

      客戶端上的差異

      1、Javascript客戶端的獲取方式

      在以前的版本中,JavaScript 客戶端是通過 Visual Studio 中的 NuGet 包獲取的。 Core 版本的 @aspnet/signalr npm 包包含 JavaScript 庫。 此包不包括在ASP.NET Core Web 應用程序模板。 使用 npm 獲取并安裝 @aspnet/signalr npm 包。  

      2、已刪除對JQuery的依賴

       

      3、客戶端語法的不同

      JavaScript 語法已與 Signalr 早期版本中的相應語法不同。 請使用 HubConnectionBuilder API 而非 $connection 對象創建連接。

      4、中心代理

      已經不再自動生成代理

      posted @ 2019-09-26 17:14  Shikyoh  閱讀(2378)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产综合av一区二区三区| 人妻无码久久精品| 激情国产一区二区三区四区| 人妻少妇无码精品视频区| 特级做a爰片毛片免费看无码 | 粉嫩一区二区三区精品视频| 亚洲欧美另类久久久精品播放的| 亚洲sm另类一区二区三区| 亚洲国产av无码精品无广告 | 亚洲 欧美 影音先锋| 美女爽到高潮嗷嗷嗷叫免费网站| 在线高清免费不卡全码| 日韩在线成年视频人网站观看| 免费人妻无码不卡中文字幕18禁| 亚洲中文精品久久久久久不卡| 国产成人a在线观看视频| 国产午夜福利精品视频| 性色高清xxxxx厕所偷窥| 国产v综合v亚洲欧美大天堂| 亚洲国产成人精品女久久| 风韵丰满妇啪啪区老老熟女杏吧| 久久久天堂国产精品女人| 99久久机热/这里只有精品| 无码人妻丝袜在线视频| 亚洲一区二区三区av无码| 国产精品综合一区二区三区| 熟女系列丰满熟妇AV| 中文字幕一区二区三区麻豆| 露脸国产精品自产拍在线观看| 狠狠亚洲色一日本高清色| 久久一级黄色大片免费观看| 狠狠躁夜夜躁无码中文字幕| 九九久久人妻一区精品色| 国产SUV精品一区二区四| 久久高清超碰AV热热久久| 欧美人与动zozo在线播放| 亚洲性一交一乱一伦视频| 日韩在线视频观看免费网站| av中文字幕国产精品| 97一区二区国产好的精华液| 自拍日韩亚洲一区在线|