Aspnet SignalR 入门
发布日期:2021-08-20 07:55:05 浏览次数:2 分类:技术文章

本文共 2990 字,大约阅读时间需要 9 分钟。

hot3.png

服务器端

安装使用

程序运行环境 .netFramwork 4.5及以上版本

SignalR 可通过Owin Hosting,也可以通过IIS Hosting

owin selfhost

  • 安装包 pacakge list
install-package Microsoft.aspnet.signalr.SelfHostinstall-package Microsoft.owin.hostinginstall-package Microsoft.owin.cors
  • 配置startup.cs

    • hub为单实例
public class Startup    {        private log4net.ILog loger = log4net.LogManager.GetLogger(typeof(Startup));        //单例hub才对        Hub.MessageHub hub = new Hub.MessageHub();        public void Configuration(IAppBuilder app)        {            GlobalHost.DependencyResolver.Register(typeof(Hub.MessageHub), () => hub);            app.UseCors(CorsOptions.AllowAll);            app.MapSignalR();            loger.DebugFormat("启动Startup服务器...");            //app.Map("/signalr", map =>            //{            //    //添加 允许 跨域访问 规则            //    app.UseCors(CorsOptions.AllowAll);            //    var hubConfiguration = new HubConfiguration            //    {            //        EnableDetailedErrors=true,            //        EnableJSONP=true            //    };            //    map.MapSignalR(hubConfiguration);            //});        }
- hub多实例(默认)
public class Startup1      {          public void Configuration(IAppBuilder app)          {              //跨域设置              app.UseCors(CorsOptions.AllowAll);              //路由注册(使用默认)              app.MapSignalR();          }      }
  • 启动
class Program{  static IDisposable signalR;  static void Main(string[] args){string _signalRURI = "http://+:8000"try{signalR = WebApp.Start
(_signalRURI);}catch (TargetInvocationException texs){loger.Error("SignalR服务器启动失败! " );}catch (Exception ex){loger.Error("SignalR服务器启动出错! " );}Console.ReadKey();}}

客户端调用

1、web客户端调用

Install-Package Microsoft.AspNet.SignalR.JS
//创建 MsgHub js实例 $.connection.hub.url = "http://localhost:8000/signalr"; var msgHub = $.connection.msgHub; //启用客户端日志 $.connection.hub.logging = true; //注册客户端接收事件处理 msgHub.client.receive = function (content) { console.info(content); $('#result').append('服务器推送内容:'+content).append('
'); } //启动监听 $.connection.hub.start().done(function () { //调用服务端发送消息 $('#btnOne').click(function () { var text = $('#txtOne').val(); msgHub.server.send(text); }); });

2、其他桌面客户端调用 wpf,console、winform client

Install-Package Microsoft.AspNet.SignalR.Client
//SignalR.Client简单实例      static void Main(string[] args)      {          //创建客户端连接          string url = "http://localhost:8000";          var con = new HubConnection(url);          //实例化客户端代理          IHubProxy msgProxy = con.CreateHubProxy("MsgHub");          //注册客户端接收          msgProxy.On("receive", (content) =>          {              Console.WriteLine("服务器推送内容:" + content);          });          //启动监听并等待          con.Start().Wait();          //客户端,发送内容          msgProxy.Invoke("Send", "ConsonleClient,上线了");          Console.WriteLine("ConsonleClient,启动成功");          Console.Read();      }

转载于:https://my.oschina.net/pilgrimzh/blog/1631219

转载地址:https://blog.csdn.net/weixin_33672109/article/details/92066797 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python中list,dict用法和格式化存储
下一篇:C语言石头、剪刀、布

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月10日 02时03分02秒