没有合适的资源?快使用搜索试试~ 我知道了~
首页Asp.Net Core中WebSocket绑定的方法详解
资源详情
资源评论
资源推荐

Asp.Net Core中中WebSocket绑定的方法详解绑定的方法详解
WebSocket 是一种在单个 TCP 连接上进行全双工通讯的协议,是建立在TCP上、且独立的协议。下面这篇文
章主要给大家介绍了关于Asp.Net Core中WebSocket绑定的方法,需要的朋友可以参考借鉴,下面来一起看看
吧。
说明说明
Websocket是html5后的产物,对于asp.net 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);
}
}
}
}

















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0