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

等等

如何在web api中使用SignalR的更多相关文章

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

    原文:[ASP.NET Web API教程]5.5 ASP.NET Web API中的HTTP Cookie 5.5 HTTP Cookies in ASP.NET Web API 5.5 ASP.N ...

  2. 如何在ASP.NET Core Web API中使用Mini Profiler

    原文如何在ASP.NET Core Web API中使用Mini Profiler 由Anuraj发表于2019年11月25日星期一阅读时间:1分钟 ASPNETCoreMiniProfiler 这篇 ...

  3. [译]如何在Web开发中使用Python

    [译]如何在Web开发中使用Python 原文:HOWTO Use Python in the Web 摘要 这篇文档展示了Python如何融入到web中.它介绍了几种Python结合web服务器的方 ...

  4. 在ASP.NET Core Web API中为RESTful服务增加对HAL的支持

    HAL(Hypertext Application Language,超文本应用语言)是一种RESTful API的数据格式风格,为RESTful API的设计提供了接口规范,同时也降低了客户端与服务 ...

  5. 在asp.net web api中利用过滤器设置输出缓存

    介绍 本文将介绍如何在asp.net web api中利用过滤器属性实现缓存. 实现过程 1,首先在web.config文件下appsettings下定义“CacheEnabled”和“CacheTi ...

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

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

  7. Entity Framework 6 Recipes 2nd Edition(9-3)译->找出Web API中发生了什么变化

    9-3. 找出Web API中发生了什么变化 问题 想通过基于REST的Web API服务对数据库进行插入,删除和修改对象图,而不必为每个实体类编写单独的更新方法. 此外, 用EF6的Code Fri ...

  8. ASP.NET Web API中的Controller

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

  9. Web APi 2.0优点和特点?在Web APi中如何启动Session状态?

    前言 曾几何时,微软基于Web服务技术给出最流行的基于XML且以扩展名为.asmx结尾的Web Service,此服务在.NET Framework中风靡一时同时也被.NET业界同仁所青睐,几年后在此 ...

随机推荐

  1. HTTP host头

    前几天,将一个host误配置为https,导致对方服务解析异常,排查半天,才发现是host导致,故整理一下HTTP host作用. Host:指定请求服务器的域名/IP地址和端口号. 作用:同一台机器 ...

  2. MySQL复制 slave_exec_mode 参数IDEMPOTENT 说明

      背景: 今天无意当中看到参数slave_exec_mode,从手册里的说明看出该参数和MySQL复制相关,是可以动态修改的变量,默认是STRICT模式(严格模式),可选值有IDEMPOTENT模式 ...

  3. Linux内核参数基础优化

    web 服务负载均衡器常规网站服务器优化的基本配置: net.ipv4.tcp_fin_timeout =2 net.ipv4.tcp_tw_reuse =1 net.ipv4.tcp_tw_recy ...

  4. Coursera-AndrewNg(吴恩达)机器学习笔记——第三周编程作业(逻辑回归)

    一. 逻辑回归 1.背景:使用逻辑回归预测学生是否会被大学录取. 2.首先对数据进行可视化,代码如下: pos = find(y==); %找到通过学生的序号向量 neg = find(y==); % ...

  5. 根据字体多少使UILabel自动调节尺寸

    原文:http://blog.csdn.net/enuola/article/details/8559588 在大多属性情况下,给UILabel进行动态数据绑定的时候,往往需要根据字符串的多少,动态调 ...

  6. October 18th 2017 Week 42nd Wednesday

    Only someone who is well-prepared has the opportunity to improvise. 只有准备充分的人才能够尽兴表演. From the first ...

  7. Java实现XML和JavaBean互转 - XStream

    1.简介 XStream是一个序列化JavaBean为XML文件以及反序列化的工具. 2.准备 2.1.XML回顾 在学习这部分内容前,假设你对XML以及有一定的了解,至少能够分辨出XML的元素.属性 ...

  8. AES块加密与解密

    AES块加密与解密 解密目标 在CBC和CTR两种模式下分别给出十篇加密的样例密文,求解密一篇特定的密文 解密前提 全部密文及其加密使用的key都已给出 加密的方法遵循AES的标准 解密过程分析 实验 ...

  9. kali 2016.2安装及配置

    之前安装过kali,现在换了台电脑重新安装一遍,顺便记录下来,因为面向新手所以会很详(luo)细(suo) 安装: 首先到官网去下载镜像文件:https://www.kali.org/download ...

  10. Lr原理初识-hc课堂笔记

    showslow web服务器-apache.ngix devops 需求调研-占1/3的时间. 架构拓扑图 APP端测试工具:JT.Vtest 进程是管理单元.线程是执行单元. 虚拟用户和真实用户是 ...