AspNet 接入WebSocket
文章目录
前言
提示:WebScoket相信大家都不陌生
WebScoket
是与Http协议类似的一种协议,区别在于WebSocket
属于服务端和客户端双向通信而Http是无状态式,每次请求都服务端都不清楚客户端是谁,所以Http需要Cookie
,Session
来实现识别客户端信息的作用。
提示:以下是本篇文章正文内容,下面案例可供参考
一、Http场景
在普通的Web
应用下一般多用于Http实现与服务端通信,由于Http是无状态的在并发、性能方面也相对较好
二、WebScoket场景
WebScoket
为了实现一些特殊场景,比如:即时通讯、消息推送等对数据响应速度较快的情况而应对,当然由于这种协议属于双向通信也是一种长时间保持连接的状态,对资源消耗、性能提高、并发量的支持不是很高。
三、图解
四、在Asp.net Web应用如何接入WebSocket
1.WebsocketHelper
代码如下(示例):
public static class WebsocketHelper
{
/// <summary>
/// 记录客户端连接
/// </summary>
public static ConcurrentDictionary<string, WebSocket> webSockets = new ConcurrentDictionary<string, WebSocket>();
//private static List<Authority_User> UserList = new QMS_BaseResource().Authority_User.AsNoTracking().Where(p => p.UserType!=null && (p.UserType == 4 || p.UserType == 0)).ToList();
/// <summary>
/// 接受信息
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public async static Task ProcessRequest(AspNetWebSocketContext context)
{
try
{
//获取路由
string route = context.RawUrl;
//if (route.Contains("?"))
//{
// route = route.Split('?')[0];
//}
strin