亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

Asp.Net Core中WebSocket綁定的方法詳解

2024-07-10 13:32:49
字體:
來源:轉載
供稿:網友

說明

Websocket是html5后的產物,對于asp.net coreldraw/186176.html">core中也得到了支持,Asp.Net Core中WebScoket的操作使用基本上和Asp.net中相同,不同的是,綁定監聽。

Asp.Net Core2.0默認已經支持WebSocket,不需要另外安裝Nuget包。

通過對HttpContext中的WebSockets.AcceptWebSocketAsync方法,接受WebSocket請求;并返回WebScoket對象。

下面話不多說了,來一起看看詳細的介紹吧。

一、示例1,

1.后臺啟動文件Startup的configure中綁定WebSocket的路由監聽

public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider svp) { ......  //綁定WebSocket  app.Map("/wsone/Connect", (con) =>  {   con.UseWebSockets();   WSHanleTwo _two = new WSHanleTwo();   con.Use(_two.Connect);  }); } 

2.定義請求處理類

using System.Net.WebSockets; using System.Threading; using System.Threading.Tasks; namespace Core_Razor_2 {  public class WSHanleTwo  {   private WebSocket socket = null;   //創建鏈接   public async Task Connect(HttpContext context, Func<Task> n)   {    try    {     //執行接收     WebSocket socket = await context.WebSockets.AcceptWebSocketAsync();     this.socket = socket;     //執行監聽     await EchoLoop();    }    catch (Exception ex)    {     throw ex;    }   }   /// <summary>   /// 響應處理   /// </summary>   /// <returns></returns>   async Task EchoLoop()   {    var buffer = new byte[1024];    var seg = new ArraySegment<byte>(buffer);    while (this.socket.State == WebSocketState.Open)    {     var incoming = await this.socket.ReceiveAsync(seg, CancellationToken.None);     byte[] backInfo = System.Text.UTF8Encoding.Default.GetBytes("服務端相應內容");     var outgoing = new ArraySegment<byte>(backInfo, 0, incoming.Count);     await this.socket.SendAsync(outgoing, WebSocketMessageType.Text, true, CancellationToken.None);    }   }  } } 

3.前臺請求代碼

var socket; //var uri = "ws://" + window.location.host + "/ws"; var uri = "ws://" + window.location.host + "@Url.Action("Connect")"; var output; var text = "test echo"; function write(s) {  var p = document.createElement("p");  p.innerHTML = s;  output.appendChild(p); } function doConnect() {  socket = new WebSocket(uri);  socket.onopen = function (e) { write("opened " + uri); doSend(); };  socket.onclose = function (e) { write("closed"); };  socket.onmessage = function (e) { write("Received: " + e.data); socket.close(); };  socket.onerror = function (e) { write("Error: " + e.data); }; } function doSend() {  write("Sending: " + text);  socket.send(text); } function onInit() {  output = document.getElementById("output");  doConnect(); } window.onload = onInit; 

二、為了簡單綁定,可以這樣封裝

public class SocketHandler {  public const int BufferSize = 4096;  WebSocket socket;  SocketHandler(WebSocket socket)  {   this.socket = socket;  }  async Task EchoLoop()  {   var buffer = new byte[BufferSize];   var seg = new ArraySegment<byte>(buffer);   while (this.socket.State == WebSocketState.Open)   {    var incoming = await this.socket.ReceiveAsync(seg, CancellationToken.None);    var outgoing = new ArraySegment<byte>(buffer, 0, incoming.Count);    await this.socket.SendAsync(outgoing, WebSocketMessageType.Text, true, CancellationToken.None);   }  }  static async Task Acceptor(HttpContext hc, Func<Task> n)  {   if (!hc.WebSockets.IsWebSocketRequest)    return;   var socket = await hc.WebSockets.AcceptWebSocketAsync();   var h = new SocketHandler(socket);   await h.EchoLoop();  }  /// <summary>  /// 路由綁定處理  /// </summary>  /// <param name="app"></param>  public static void Map(IApplicationBuilder app)  {   app.UseWebSockets();   app.Use(SocketHandler.Acceptor);  } } 

路由綁定:

[csharp] view plain copy//綁定websocket app.Map("/ws", SocketHandler.Map); 

 

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩欧美91| 色婷婷综合久久久久| 88国产精品欧美一区二区三区| 久久久久久久久久久亚洲| 亚洲精品久久视频| 欧美老女人www| 精品高清美女精品国产区| 国产色视频一区| 成人免费淫片视频软件| 欧美激情女人20p| 欧美日韩亚洲网| 欧美高清第一页| 亚洲伊人久久综合| 久久九九全国免费精品观看| 色偷偷av一区二区三区| 日韩在线一区二区三区免费视频| 影音先锋欧美在线资源| 国产精品第一视频| 欧美黑人巨大精品一区二区| 欧美日韩亚洲精品一区二区三区| 精品国产欧美一区二区三区成人| 日韩在线免费高清视频| 亚洲第一网站免费视频| 一区二区三区亚洲| 欧美性做爰毛片| 欧美精品久久久久久久免费观看| 97在线视频免费看| 国内精品久久久久影院 日本资源| 欧美美女操人视频| 91成人在线视频| 97色在线观看免费视频| 亚洲综合日韩中文字幕v在线| 欧美大尺度电影在线观看| 国产精品www| 国产亚洲精品久久久久久777| 97色在线视频观看| 97国产suv精品一区二区62| 久久这里只有精品99| 久久免费高清视频| 色老头一区二区三区在线观看| 日韩精品中文字幕在线观看| 日韩有码在线播放| 91高潮在线观看| 高清一区二区三区日本久| 亚洲激情视频在线观看| 亚洲一区二区中文字幕| 亚洲精品资源美女情侣酒店| 久久精品电影一区二区| 欧美一级大片在线免费观看| 国产精品一区二区久久久| 亚洲va欧美va在线观看| 亚洲第一福利网| 日韩福利伦理影院免费| 一区二区三区动漫| 欧美人在线观看| 91视频国产高清| 国产精品白丝av嫩草影院| 日本一欧美一欧美一亚洲视频| 亚洲第一福利在线观看| 69av在线播放| 亚洲精品国产精品国自产在线| 91久久久久久| 国产剧情久久久久久| 日韩毛片在线看| 亚洲欧美国产制服动漫| 亚洲一区二区国产| 国产精品美腿一区在线看| 欧美日韩福利视频| 成人久久久久久久| 精品欧美国产一区二区三区| 国产视频在线观看一区二区| 欧美在线观看日本一区| 91精品久久久久久久久久久久久久| 亚洲精品美女免费| 国产精品久久久久7777婷婷| 久久久精品国产| 最近中文字幕mv在线一区二区三区四区| 亚洲а∨天堂久久精品喷水| 欧美性猛交xxxxx免费看| 成人在线中文字幕| 亚洲欧美日韩一区二区在线| 亚洲欧美一区二区三区四区| 欧美电影免费观看大全| 亚洲最大在线视频| 久久亚洲精品一区二区| 日韩av一区二区在线观看| 日韩国产高清污视频在线观看| 欧美国产日韩免费| 大荫蒂欧美视频另类xxxx| 久久久精品日本| 色无极亚洲影院| 亚洲影院色无极综合| 成人激情视频网| 精品久久久久久电影| 精品综合久久久久久97| 日韩av免费在线| 亚洲一区二区三区777| 亚洲福利在线视频| 欧美区在线播放| 成人免费xxxxx在线观看| 国产精品成人一区二区三区吃奶| 成人做爰www免费看视频网站| 欧美一级免费视频| 欧美精品一区二区免费| 97视频在线观看免费| 全亚洲最色的网站在线观看| 欧美电影免费看| 欧美性极品xxxx做受| 九九热视频这里只有精品| 欧美疯狂做受xxxx高潮| 久久精品99无色码中文字幕| 91夜夜揉人人捏人人添红杏| 中文字幕亚洲二区| 国产区亚洲区欧美区| 亚洲男人天堂手机在线| 久久亚洲国产精品成人av秋霞| 国产精品女主播视频| 亚洲肉体裸体xxxx137| 日韩美女在线看| 92看片淫黄大片看国产片| 成人精品在线观看| 日韩一区二区三区在线播放| 粉嫩老牛aⅴ一区二区三区| 精品无人国产偷自产在线| 日韩欧美国产高清91| 法国裸体一区二区| 欧美日韩国产区| 欧美激情免费在线| 欧美天堂在线观看| 久热精品视频在线| 久久影院模特热| 精品呦交小u女在线| 97视频国产在线| www.欧美精品| 国内精品视频在线| 欧美激情亚洲另类| 欧美精品成人在线| 欧美中文在线免费| 91精品视频免费观看| 国产精品久久久久久影视| 国产精品一区二区女厕厕| 国产精品爽爽爽爽爽爽在线观看| 国产亚洲在线播放| 国产精品久久久久久久久免费| 九九热最新视频//这里只有精品| 91久久精品在线| 日韩精品在线视频观看| 麻豆一区二区在线观看| 欧美日韩加勒比精品一区| 欧美午夜片在线免费观看| 色综合久久88色综合天天看泰| 66m—66摸成人免费视频| 久久天天躁狠狠躁夜夜躁2014| 国产一区二区免费| 亚洲第一精品夜夜躁人人爽| 色偷偷av一区二区三区| 日韩成人在线视频网站| 亚洲视频999| 欧美在线视频免费| 91po在线观看91精品国产性色| 色悠悠久久88| 欧美国产极速在线| 欧美激情免费观看| 欧美精品在线观看|