html代码:

  1. <script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
  2. <script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>
  3. <script>
  4. $(function () {
  5. var hub = $.connection.payHub;
  6. hub.client.waitNotify = function (tran, url) {
  7. console.log("waitNotify:" + tran + " " + url);
  8. if (tran) {
  9. location.href = url;
  10. }
  11.  
  12. };
  13. $.connection.hub.start().done(function () {
  14. console.log("hub done");
  15. });
  16. })
  17. </script>

hub代码:

  1. [HubName("payHub"), Authorize]
  2. public class payHub : Hub
  3. {
  4. public static Dictionary<Guid, string> userPayHub = new Dictionary<Guid, string>();
  5. public static void Notify(Guid userId, string redirectUrl)
  6. {
  7. if (userPayHub.ContainsKey(userId))
  8. {
  9. Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<Hubs.payHub>()
  10. .Clients.Client(Hubs.payHub.userPayHub[userId])
  11. .waitNotify(true, redirectUrl);
  12. }
  13. }
  14. public override Task OnConnected()
  15. {
  16. var uid = this.Context.User.Identity.GetUserId();
  17. userPayHub[uid] = this.Context.ConnectionId;
  18. return base.OnConnected();
  19. }
  20. public override Task OnDisconnected(bool stopCalled)
  21. {
  22. var uid = this.Context.User.Identity.GetUserId();
  23. userPayHub.Remove(uid);
  24. return base.OnDisconnected(stopCalled);
  25. }
  26. public override Task OnReconnected()
  27. {
  28. var uid = this.Context.User.Identity.GetUserId();
  29. userPayHub.Remove(uid);
  30. return base.OnReconnected();
  31. }
  32. }

通知调用Notify方法即可。

关键点:GlobalHost.ConnectionManager.GetHubContext

SignalR主动通知订阅者示例的更多相关文章

  1. WebSocket安卓客户端实现详解(三)–服务端主动通知

    WebSocket安卓客户端实现详解(三)–服务端主动通知 本篇依旧是接着上一篇继续扩展,还没看过之前博客的小伙伴,这里附上前几篇地址 WebSocket安卓客户端实现详解(一)–连接建立与重连 We ...

  2. EWS 流通知订阅邮件

    摘要 查找一些关于流通知订阅邮件的资料,这里整理一下. 核心代码块 using System; using System.Collections.Generic; using System.Linq; ...

  3. NetMQ发布订阅C#示例

    NetMQ (ZeroMQ to .Net),ØMQ号称史上最快中间件.它对socket通信进行了封装,使得我们不需要写socket函数调用就能完成复杂的网络通信.和一般意义上的消息队列产品不同的是, ...

  4. 【Android】15.0 第15章 广播和通知—本章示例主界面

    分类:C#.Android.VS2015: 创建日期:2016-02-28 一.简介 广播(Broadcast):其功能类似于收音机的广播,你只要调到那个台(只要在接收的类中注册了要接收的广播),就能 ...

  5. XAMARIN.ANDROID SIGNALR 实时消息接收发送示例

    SignalR 是一个开发实时 Web 应用的 .NET 类库,使用 SignalR 可以很容易的构建基于 ASP.NET 的实时 Web 应用.SignalR 支持多种服务器和客户端,可以 Host ...

  6. SignalR及时通知功能

    功能需求,现时已经编写了一个hub能够,将后台的消息发送至前台中,并给出提示,但如后台已经发生了变化,由内部调用消息时,应该怎样处理? 1.编写Hub类 using System.Collection ...

  7. 【Java面试题】50 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

    1.对于GC来说,当程序员创建对象时,GC就开始监控这个对象的地址.大小以及使用情况. 通常,GC采用有向图的方式记录和管理堆(heap)中的所有对象.通过这种方式确定哪些对象是"可达的&q ...

  8. 主动通知Android系统图库进行更新

    项目中遇到调用图库进行图片的选择,因为不能主动及时更新,遂实现代码调用实现主动及时更新. 废话不多刷,看代码. 方式一,发送一个广播, sendBroadcast(new Intent(Intent. ...

  9. keepalive笔记之三:keepalived通知脚本进阶示例

    下面的脚本可以接受选项,其中: -s, --service SERVICE,...:指定服务脚本名称,当状态切换时可自动启动.重启或关闭此服务: -a, --address VIP: 指定相关虚拟路由 ...

随机推荐

  1. Android Touch事件传递机制 二:单纯的(伪生命周期)

    转载于:http://blog.csdn.net/yuanzeyao/article/details/38025165 在前一篇文章中,我主要讲解了Android源码中的Touch事件的传递过程,现在 ...

  2. iOS 二维码扫描

    // 导入 AVFoundation.framwork 框架#import "HDCodeViewController.h" #import "HDNormalViewC ...

  3. Session 失效原因

    转载http://blog.csdn.net/LLorJJ999/article/details/4107464 昨天去GTSC面试,有面试官问我关于Session丢失之后怎么查的问题,说老实话,开发 ...

  4. docker'部署

    环境:ubuntu-14.04.4-server-amd64 1.更换阿里云源 备份源配置文件: $ sudo cp /etc/apt/sources.list /etc/apt/sources.li ...

  5. Oracle创建表空间、用户、授权

    在创建好数据实例(数据库)好后的基础上,后续做的事情如下: ---创建表空间 create tablespace LIS2011DATA logging datafile 'd:\oracle\pro ...

  6. ORACLE关闭启动的诡异错误

    在自己虚拟机搭建的ORACLE数据库环境下,折腾捣鼓做实验时,不知道什么特殊的改动.操作导致从SQL*PLUS里启动数据库实例时,报如下错误: 然后用startup nomout启动时,任然报ORA- ...

  7. git 命令使用总结

    聊下 git rebase -i 聊下git merge --squash 聊下git pull --rebase 聊下 git remote prune origin 聊下 git 使用前的一些注意 ...

  8. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理1

    首先给上项目的整体框架图:,这里我没有使用BLL,因为感觉太烦了就没有去使用. 那么接下来我们首先先去Model层中添加Model. 管理员类: using System; using System. ...

  9. C++ 栈和堆的区别

    C++中的存储区分为全局数据区.代码区.堆.栈. 全局数据区存放静态数据.全局变量.常量. 代码区存放所有类成员函数和非成员函数的代码. 栈区存放用于函数的返回地址.形参.局部变量.返回类型. 堆区存 ...

  10. Zabbix监控VMare Vcenter

    1.参照Zabbix文档配置 依照官方文档配置,没什么说的. zabbix官方文档:https://www.zabbix.com/documentation/3.2/manual/vm_monitor ...