国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

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

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:35:13
文檔

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

Asp.Net Core中WebSocket綁定的方法詳解:說(shuō)明 Websocket是html5后的產(chǎn)物,對(duì)于asp.net core中也得到了支持,Asp.Net Core中WebScoket的操作使用基本上和Asp.net中相同,不同的是,綁定監(jiān)聽(tīng)。 Asp.Net Core2.0默認(rèn)已經(jīng)支持WebSocket,不需要另外安裝Nuget包。 通過(guò)對(duì)HttpCo
推薦度:
導(dǎo)讀Asp.Net Core中WebSocket綁定的方法詳解:說(shuō)明 Websocket是html5后的產(chǎn)物,對(duì)于asp.net core中也得到了支持,Asp.Net Core中WebScoket的操作使用基本上和Asp.net中相同,不同的是,綁定監(jiān)聽(tīng)。 Asp.Net Core2.0默認(rèn)已經(jīng)支持WebSocket,不需要另外安裝Nuget包。 通過(guò)對(duì)HttpCo

說(shuō)明

Websocket是html5后的產(chǎn)物,對(duì)于asp.net core中也得到了支持,Asp.Net Core中WebScoket的操作使用基本上和Asp.net中相同,不同的是,綁定監(jiān)聽(tīng)。

Asp.Net Core2.0默認(rèn)已經(jīng)支持WebSocket,不需要另外安裝Nuget包。

通過(guò)對(duì)HttpContext中的WebSockets.AcceptWebSocketAsync方法,接受WebSocket請(qǐng)求;并返回WebScoket對(duì)象。

下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

一、示例1,

1.后臺(tái)啟動(dòng)文件Startup的configure中綁定WebSocket的路由監(jiān)聽(tīng)

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.定義請(qǐng)求處理類(lèi)

using System.Net.WebSockets; 
using System.Threading; 
using System.Threading.Tasks; 
namespace Core_Razor_2 
{ 
 public class WSHanleTwo 
 { 
 private WebSocket socket = null; 
 //創(chuàng)建鏈接 
 public async Task Connect(HttpContext context, Func<Task> n) 
 { 
 try 
 { 
 //執(zhí)行接收 
 WebSocket socket = await context.WebSockets.AcceptWebSocketAsync(); 
 this.socket = socket; 
 //執(zhí)行監(jiān)聽(tīng) 
 await EchoLoop(); 
 } 
 catch (Exception ex) 
 { 
 throw ex; 
 } 
 } 
 /// <summary> 
 /// 響應(yīng)處理 
 /// </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("服務(wù)端相應(yīng)內(nèi)容"); 
 var outgoing = new ArraySegment<byte>(backInfo, 0, incoming.Count); 
 await this.socket.SendAsync(outgoing, WebSocketMessageType.Text, true, CancellationToken.None); 
 } 
 } 
 } 
} 

3.前臺(tái)請(qǐng)求代碼

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; 

二、為了簡(jiǎn)單綁定,可以這樣封裝

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); 

Asp.Net Core上傳控件:http://xiazai.jb51.net/201712/yuanma/Uploader(jb51.net).rar

總結(jié)

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

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

Asp.Net Core中WebSocket綁定的方法詳解:說(shuō)明 Websocket是html5后的產(chǎn)物,對(duì)于asp.net core中也得到了支持,Asp.Net Core中WebScoket的操作使用基本上和Asp.net中相同,不同的是,綁定監(jiān)聽(tīng)。 Asp.Net Core2.0默認(rèn)已經(jīng)支持WebSocket,不需要另外安裝Nuget包。 通過(guò)對(duì)HttpCo
推薦度:
標(biāo)簽: 綁定 net netcore
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top
主站蜘蛛池模板: 国产精品日本 | 日韩亚洲欧美一区噜噜噜 | 中文字幕版免费电影网站 | 久久九九99| 成人久久久精品乱码一区二区三区 | 国产精品久久久久久久久 | 日本一区二区三区不卡在线视频 | 美女一级毛片 | 欧美日韩 在线播放 | 欧美激情一区二区 | 国产成人精品日本亚洲语音2 | 免费国产精品视频 | 久青草国产视频 | 国产精品高清一区二区 | 性欧美大战久久久久久久野外 | 伊人网免费视频 | 天天爱夜夜操 | 日本vs欧美一区二区三区 | 国产欧美久久一区二区 | 一级毛片视频免费 | 边做边爱边吃奶叫床的视频 | 亚州一级| 911亚洲精品国内自产 | 囗交免费毛片 | 国产一区二区三区在线观看视频 | 国产一区导航 | 久操综合 | 国产中文久久精品 | 亚洲一区色 | 成人欧美精品久久久久影院 | 日韩一级精品视频在线观看 | 亚洲小视频在线 | 日韩在线一区二区 | 欧美日韩国产中文字幕 | 激情专区 | 久久精品亚洲欧美日韩久久 | 欧美爱爱动态图 | 国产1区2区 | 国产成人精品久久二区二区 | 久久久无码精品亚洲日韩按摩 | 国产观看 |