说明: 在webapi中使用signalr,使用IIS

环境: vs2012, .net4.5

第一步:建web api项目

第二步:nuget导入signalr

Install-Package Microsoft.AspNet.SignalR

Install-Package Microsoft.Owin.Cors  (用于跨域)

第三步:创建hub类

demo是从网上down的,去除了一些没用到的东西,只保留了MessageHub

第四步:创建Startup类

第五步:在webapi方法中调用推送

Clients.All 会给所有客户端推送, hub.Clients.All.showMessage()意思是调用所有连接的客户端的showMessage方法。

  说明:如果想给指定的人推送,要先获得指定连接的ConnectionId, 通过

  hub.Clients.Clients(iList<string> list).showMessage 来调用,  这里的list是ConnectionId集合。

  注1:showMessage这个方法名是自定义的,只要与前端一致即可。

  注2:后面会说怎么给指定人推送消息。

  至此,signalr在webapi的代码已经完成。将其放到iis里。注意应用程序池的.net版本。

  IIS绑定的9999端口,所以网址就是  http://localhost:9999

第六步:编写接收推送消息的web端A

建一个web程序,这里只建了一个webform程序。在nuget中导入signalR

  这里的地址的前半段就是iis绑定的地址。

  $.connection.messageHub, 这个messageHub首字母要小写。

  hub.client.showMessage,对应webapi里的调用。

  jQuery.support.cors=true, 主要针对IE8,9跨越(本人并未验证)

补充:

$.connection.hub.disconnected(function (e) {
             console.log("断开连接"); //这里添加断开连接的处理方法
        });
       //如果断开连接,会自动重连10次,10次都失败,会触发disconnected方法

第七步:使用app或者其他端调用webapi里的方法, web端A推送消息

这里就不用app了,用一个web页面来代替app调用。具体如下:

END:一个简单的demo完成了。

最后:如何推送给指定用户。

向指定用户推送,要用到connetionid 。

在MessageHub类里添加一个SendLogin方法:

   这是网上找到demo, 后期考虑把 name和connetionid关系存到数据库中。

  接收推送端:注意首字母小写

   Webapi方法里:

参考博客:

http://blog.csdn.net/a1002308667/article/details/51205513

http://www.cnblogs.com/humble/p/3856357.html

http://www.cnblogs.com/landeanfen/p/5177176.html

等等

作者:Knightly

原文地址:https://www.cnblogs.com/lanshanke/p/6604568.html

如何在web api中使用SignalR相关推荐

  1. 【ASP.NET Web API教程】5.5 ASP.NET Web API中的HTTP Cookie

    5.5 HTTP Cookies in ASP.NET Web API 5.5 ASP.NET Web API中的HTTP Cookie 本文引自:http://www.asp.net/web-api ...

  2. 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

    在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core ...

  3. (四)Asp.net web api中的坑-【api的返回值】

    (四)Asp.net web api中的坑-[api的返回值] 原文:(四)Asp.net web api中的坑-[api的返回值] void无返回值 IHttpActionResult HttpRe ...

  4. ASP.NET Web API中的参数绑定总结

    ASP.NET Web API中的action参数类型可以分为简单类型和复杂类型. HttpResponseMessage Put(int id, Product item) id是int类型,是简单 ...

  5. C# web api 中过滤器的使用

    一.开篇 Fiter在Web API中经常会用到,主要用于记录日志,安全验证,全局错误处理等:Web API提供两种过滤器的基本类型:actionfilterattribute,exceptionfi ...

  6. ASP.NET Web API中的Controller

    虽然通过Visual Studio向导在ASP.NET Web API项目中创建的 Controller类型默认派生与抽象类型ApiController,但是ASP.NET Web API框架本身只要 ...

  7. 如何把python可视化到前端_python数据可视化的效果如何在web页面中展示_北京可视化股票...

    有什么APP可以展示可视化的任务进度 可视化任务进度软件,使用敬业签,具体可视有事项开始时间,进度及人.还有结束时间以及人员处理速等等,更多功能如下: 1.敬业签是一款功能比较全面的桌面便签软件,分为 ...

  8. ASP.NET Web API中实现版本

    一般来说,api 接口是提供给其他系统或是其他公司使用,不能随意频繁的变更.然而,需求和业务不断变化,接口和参数也会发生相应的变化.如果直接对原来的接口进行修改,势必会影响线其他系统的正常运行.这就必 ...

  9. 监控系统简介(二):使用 App Metrics 在 ASP.NET Web API 中记录指标

    回顾 在<监控系统简介:使用 Prometheus 与 Grafana>一文中,我们了解了什么是监控系统,Prometheus 这一监控工具及它提供的数据类型.PromQL 以及 Graf ...

最新文章

  1. Response_输出数据,实现文件下载,定时刷新页面,是否缓存,重定向,实现验证码...
  2. X皮书之shell 常用代码
  3. UDP分两次接收数据包 MSG_PEEK
  4. 入门程序之入门代码编写
  5. 对于Dubbo一些自己的答案
  6. 一周要闻:为什么从百度离职,程序员五件事.......
  7. CFI/CFG 安全防护原理详解(ROP攻击、DOP攻击、插装检测)
  8. 大数据预测实战-随机森林预测实战(四)-模型调参
  9. aspcms模板转php,aspcms转换zzzcms,aspcms迁移数据,aspcms替换模板,aspcms模板转换-下载-zzzcms官网-开源免费建站系统...
  10. springboot2.0版本后配置拦截器会导致静态资源被拦截
  11. 玩转matlab之一维 gauss 数值积分公式及matlab源代码
  12. mysql连接报java.math.BigInteger cannot be cast to java.lang.Long异常
  13. java 二分_java二分查找算法
  14. 由scanf说起之1:scanf函数和回车、空格 及其返回值
  15. Rosenbrock函数的梯度与海瑟矩阵
  16. 北京54或国家80或CGCS2000转WGS84坐标系的程序实现方法
  17. snownlp 原理_snownlp入门
  18. 全民农场服务器维护上不去,全民农场微信授权失败登录不上解决方法
  19. YoloV3 先验框
  20. Lightbox JS 用法

热门文章

  1. 【组图】地震前线归来--心中的震撼
  2. 用sniffer技术盗取电话银行密码
  3. 用VC++修改注册表----让我们踏出第一步(适合初学者)
  4. cake-build -.Net Core 跨平台构建自动化系统。
  5. 聊一聊声明式接口调用与Nacos的结合使用
  6. C# WPF MVVM项目实战(进阶②)
  7. Visual Studio 2022 预览版2 发布啦
  8. ML.NET Cookbook:(11)如果我的训练数据不在文本文件中怎么办?
  9. 如何打造组织级敏捷,你想知道的都在这里!
  10. .Net Core + 微信赋能企业级智能客服系统--学习笔记