说明: 在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

等等

最新文章

  1. 猖獗的假新闻:2017年1月1日起iOS的APP必须使用HTTPS
  2. select跳转页面
  3. MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法
  4. 一个人的Scrum之准备工作
  5. Eclipse中直接双击执行bat时路径问题
  6. vim 配合管道过滤多行记录
  7. wordpress设置导航栏
  8. C Primer Plus之结构和其他数据形式
  9. 从 Auto Layout 的布局算法谈性能
  10. java输入输出
  11. ik分词
  12. Object-c学习之路十(NSNumber&amp;NSValue)
  13. lint使用简介
  14. Java Drp项目实战——Drp知多少
  15. Hat’s Words
  16. java====color、font、button、label、textfield、textarea使用
  17. Linux如何管理目录和文件属性
  18. 深入解密.NET(Tuple元祖)
  19. 【Java并发编程】:线程挂起、恢复与终止
  20. windebug常用命令

热门文章

  1. 【SPL标准库专题(9)】 Datastructures:SplObjectStorage
  2. Oracle EBS INV 创建物料搬运单
  3. Oracle EBS AP 供应商API
  4. php notes
  5. Chrome 无法加载Shockwave Flash
  6. JDK5 新特性之 可变参数的方法(2)---asList
  7. BZOJ1011:[HNOI2008]遥远的行星(乱搞)
  8. jQuery做字符串分隔
  9. JS播放声音
  10. CJOJ 【DP合集】最长上升序列2 — LIS2