asp net signalr 实现服务端消息推送到web端

asp net signalr 实现服务端消息推送到web端

ID:14160341

大小:196.94 KB

页数:18页

时间:2018-07-26

asp net signalr 实现服务端消息推送到web端_第1页
asp net signalr 实现服务端消息推送到web端_第2页
asp net signalr 实现服务端消息推送到web端_第3页
asp net signalr 实现服务端消息推送到web端_第4页
asp net signalr 实现服务端消息推送到web端_第5页
资源描述:

《asp net signalr 实现服务端消息推送到web端》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Asp.netSignalR实现服务端消息推送到Web端         之前的文章介绍过Asp.netSignalR, ASP.NETSignalR是一个ASP.NET下的类库,可以在ASP.NET的Web项目中实现实时通信. 今天我们来实现服务端消息推送到Web端,  首先回顾一下它抽象层次图是这样的:实际上Asp.netSignalR2实现服务端消息推送到Web端,更加简单.为了获取更好的可伸缩性,我们引入消息队列,看如下基本流程图:消息队列MQ监听,在Website服务端一收到消息,马上通过Signalr推送广播到客户端. 创建ASP.NET

2、MVCWEBAPP, 从NuGet安装SignalR2.12Install-PackageMicrosoft.AspNet.SignalR具体实现代码,是这样的,我们增加一个空的Hub:publicclassFeedHub:Hub{publicvoidInit(){}} 是简单的消息模型,标题与正文属性: [Serializable]publicclassPushMessageModel{publicintId{get;set;}publicstringMSG_TITLE{get;set;}publicstringMSG_CONTENT{get;se

3、t;}}服务端推送具体类,记录日志,创建消息队列实例,监听,等待收取消息.这里我们使用的是AcitveMQ的.net客户端.ActiveMQListenAdapter是一个封装过的对象. publicclassMQHubsConfig{privatestaticILoggerlog=newLogger("MQHubsConfig"); ///

///Registersthemqlistenandhubs.///publicstaticvoidRegisterMQListenAndHubs(){varactivemq

4、=Megadotnet.MessageMQ.Adapter.ActiveMQListenAdapter.Instance(MQConfig.MQIpAddress,MQConfig.QueueDestination);activemq.MQListener+=m=>{log.InfoFormat("从MQ收到消息{0}",m.MSG_CONTENT);GlobalHost.ConnectionManager.GetHubContext().Clients.All.receive(m);}; act

5、ivemq.ReceviceListener();}}上面有一句关键代码GlobalHost.ConnectionManager.GetHubContext().Clients.All.receive(m); 这里使用了GetHubContext方法后,直接来广播消息.需要在MVCApplication下加载:publicclassMvcApplication:System.Web.HttpApplication{protectedvoidApplication_Start(){AreaRegis

6、tration.RegisterAllAreas();FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);BundleConfig.RegisterBundles(BundleTable.Bundles);MQHubsConfig.RegisterMQListenAndHubs();}}同时需要增加一个Starup.cs,用于Owin[assembly:OwinStartup(typeof(Rea

7、lTimeApp.Startup))]namespaceRealTimeApp{publicclassStartup{publicvoidConfiguration(IAppBuilderapp){//Anyconnectionorhubwireupandconfigurationshouldgohereapp.MapSignalR();}}}接下来是客户端App.js:functionApp(){varinit=function(){Feed();$.connection.hub.logging=true;$.connection.hub.star

8、t().done(function(){console.log("Connected!");$(docume

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。