asp.net WEBSocket简单例子 推送数据
asp.net WEBSocket简单例子 推送数据
原创湫化风雨 发布于2018-12-05 10:41:53 阅读数 3214 收藏
展开
asp.net WEBSocket简单例子 推送数据
public class SocketHandler
{
public const int BufferSize = 4096; //缓冲区
/// <summary>
/// webSocket 承载
/// </summary>
public WebSocket socket;
/// <summary>
/// webSocket 转换静态
/// </summary>
private static WebSocket webSocket;
private static HttpContext context;
private static byte[] faceJson; //
SocketHandler(WebSocket socket)
{
this.socket = socket;
}
/// <summary>
/// 使用websocket发送json
/// </summary>
/// <param name="body">json实体</param>
/// <returns></returns>
public static async Task Send(FaceCheckinEventArgs body)
{
MsgTemplate msgTemplate = new MsgTemplate();
msgTemplate.Name = body.DeviceName;
msgTemplate.PicUrl = body.PicUrl;
msgTemplate.UpTime = body.RecordTime.ToLocalTime().ToString();
msgTemplate.CarNo = body.CardID;
//序列化
var json = JsonConvert.SerializeObject(msgTemplate);
faceJson = Encoding.UTF8.GetBytes(json);
if (webSocket == null)
return;
//放入数组段
var outgoing = new ArraySegment<byte>(faceJson, 0, faceJson.Length);
//发送json
await webSocket.SendAsync(outgoing, WebSocketMessageType.Text, true, CancellationToken.None);
}
/// <summary>
/// 开启socket
/// </summary>
/// <param name="hc"></param>
/// <param name="n"></param>
/// <returns></returns>
static async Task Acceptor(HttpContext hc, Func<Task> n)
{
if (!hc.WebSockets.IsWebSocketRequest)
return;
var socket = await hc.WebSockets.AcceptWebSocketAsync();
webSocket = socket;
var h = new SocketHandler(socket);
context = hc;
var buffer = new byte[BufferSize];
var seg = new ArraySegment<byte>(buffer);
while(webSocket.State== WebSocketState.Open) //保持开启状态
{
Thread.Sleep(1000);
}
}
/// <summary>
/// 为这个SokKethHANDER使用分支请求管道
/// </summary>
/// <param name="app"></param>
public static void Map(IApplicationBuilder app)
{
app.UseWebSockets();
app.Use(SocketHandler.Acceptor);
}
}
————————————————
版权声明:本文为CSDN博主「湫化风雨」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_25702579/article/details/84822704
相关文章
- 学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面
- ASP.NET's Data Storage Objects
- JSON Web Token in ASP.NET Web API 2 using Owin
- asp.net web api history and how does it work?
- asp.net core导出导入excel
- 采用异步来实现重新连接服务器或者重新启动服务 C#中类的属性的获取 SignalR2简易数据看板演示 C#动态调用泛型类、泛型方法 asp .net core Get raw request. 从壹开始前后端分离[.NetCore 不定期更新] 38 ║自动初始化数据库
- 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式
- Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库 自定义日志记录功能,按日记录,很方便 C#常量和字段以及各种方法的语法总结 类型,对象,线程栈,托管堆在运行时的关系,以及clr如何调用静态方法,实例方法,和虚方法 asp.net webapi 自定义身份验证
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
- C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志
- ASP.NET MVC Filters 4种默认过滤器的使用【附示例】 数据库常见死锁原因及处理 .NET源码中的链表 多线程下C#如何保证线程安全? .net实现支付宝在线支付 彻头彻尾理解单例模式与多线程 App.Config详解及读写操作 判断客户端是iOS还是Android,判断是不是在微信浏览器打开
- [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- 【ASP.NET MVC系列】浅谈数据注解和验证
- 【小程序】通过request实现小程序与后台asp.net的数据json传输(Post协议 图文+代码)
- asp.net数据库生成LigerUi树Tree结构Json格式数据(有点绕,附基本源代码)
- LigerUI中生成GRID与TREE的【JSON数据】与Asp.Net的【变量数据】(方便测试)
- 使用Angular 4、Bootstrap 4、TypeScript和ASP.NET Core开发的Apworks框架案例应用:Task List
- asp.net中利用session对象传递、共享数据[session用法]
- 《精通 ASP.NET MVC 4》----1.4 谁该使用ASP.NET MVC
- 《ASP.NET MVC 4 实战》----第 1 章 绪论 1.1 发展阶段
- 基于ASP.NET+ACCESS实现(Web)学校教务信息管理系统【100010291】
- ASP.NET Web API获取Model元数据
- asp.net mvc用aspose.cells 导出xlsx格式的excel。无残留
- asp.net mvc清空指定cookies
- AWS & ASP.NET
- asp.net-Creating JavaScript objects from ASP.NET objects