在前篇博客中,利用interval()函数,进行ajax轮询初步的实现的对数据的实时显示。但是在工业级别实时显示中,这并非是一种最好的解决方案。随着Html5 websocket的发展,这种全双工的通讯模式,使得服务器也能主动将数据发送给客户端,刚好满足我们对实时数据的要求。
基于快速开发的需求,使用微软的signalr框架(websocket框架)+sqldependency(监控sql server变化)+windows服务(实时监测sql变化)来实现实时数据显示需求。
1.signalr框架学习:
初步介绍:
siganlr2.0版本,分为persistence connection ,Hub两种方式实现。
在支持websocket模式下,自动使用websocket,不能则自动使用长连接(自适应),Hub模式又可分为两种:有代理模式,无代理模式。
下面是一些关于websocket,siganlr的学习和demo资料:
基础学习和demo:
MVC下signalr +highcharts,在线实时图表
结合sqldependency例子:
Database Change Notifications in ASP.NET using SignalR and SqlDependency
Broadcast Real-Time Notifications using SignalR, KnockoutJS and SqlTableDependencyBroadcast SQL Data Using SignalR in ASP.Net
Real Time Notifications using SignalR and SQL Dependency
websocket相关资料:
使用 HTML5 WebSocket 构建实时 Web 应用
2.sqldependency学习:
SQL Server CLR 使用 C# 自定义存储过程和触发器
3.关于Windows服务的构建:
C#写Windows Service(windows服务程序)
后续将demo源代码给出并初步分析。