html代码:

<script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>
<script>
$(function () {
var hub = $.connection.payHub;
hub.client.waitNotify = function (tran, url) {
console.log("waitNotify:" + tran + " " + url);
if (tran) {
location.href = url;
} };
$.connection.hub.start().done(function () {
console.log("hub done");
});
})
</script>

hub代码:

[HubName("payHub"), Authorize]
public class payHub : Hub
{
public static Dictionary<Guid, string> userPayHub = new Dictionary<Guid, string>();
public static void Notify(Guid userId, string redirectUrl)
{
if (userPayHub.ContainsKey(userId))
{
Microsoft.AspNet.SignalR.GlobalHost.ConnectionManager.GetHubContext<Hubs.payHub>()
.Clients.Client(Hubs.payHub.userPayHub[userId])
.waitNotify(true, redirectUrl);
}
}
public override Task OnConnected()
{
var uid = this.Context.User.Identity.GetUserId();
userPayHub[uid] = this.Context.ConnectionId;
return base.OnConnected();
}
public override Task OnDisconnected(bool stopCalled)
{
var uid = this.Context.User.Identity.GetUserId();
userPayHub.Remove(uid);
return base.OnDisconnected(stopCalled);
}
public override Task OnReconnected()
{
var uid = this.Context.User.Identity.GetUserId();
userPayHub.Remove(uid);
return base.OnReconnected();
}
}

通知调用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. 【原】Github系列之三:开源iOS下 渐变颜色的进度条WGradientProgress

    概述 今天我们来实现一个iOS平台上的进度条(progress bar or progress view).这种进度条比APPLE自带的更加漂亮,更加有“B格”.它拥有渐变的颜色,而且这种颜色是动态移 ...

  2. 开发至今,终于开始测试bug,可以省心点了

    今天遇到一个特别奇葩的问题 IOSSDK9.1 Xcode7.1.1 使用表控制器UITableViewController来刷新表时, 之前对表的frame进行的修改,都会被恢复,沾满整个屏幕. 目 ...

  3. Redhat Linux安装JDK 1.7

    本篇主要介绍在Redhat Linux(Red Hat Enterprise Linux Server release 5.7 (Tikanga))系统上安装JDK 1.7,其它Linux平台安装也大 ...

  4. SQL Server删除distribution数据库

    在数据库服务器删除复制(发布订阅)后,如何删除掉数据库distribution呢?如果你通过SSMS工具去删除数据库distribution,你会发现根本没有删除选项. 下面介绍一下删除distrib ...

  5. SQL Server 中VARCHAR(MAX)变量赋值引起的性能问题。

    案例环境: 操作系统版本 : Windows Server 2008 R2 Standard  SP1 数据库版本   :  Microsoft SQL Server 2012 (SP1) - 11. ...

  6. DBCC SHRINKDATABASE xxxx was skipped because the file does not have enough free

    假设你创建一个数据库时,指定其初始化大小(SIZE )非常大.例如,如下测试案例所示 USE [master] GO   CREATE DATABASE [TEST] ON  PRIMARY  ( N ...

  7. Linux系统中 安装Vmware Toolst工具

    前提: 安装虚拟机.可以参考:在Windows上安装虚拟机详细图文教程 安装Linux.可以参考:在VMware Workstation里的Linux操作系统的安装——红旗桌面7.0 本文作者:sou ...

  8. 003.安装nginx(lnmp)

    一.下载nginx 下载nginx源码包,解压: [root@huh ~]# cd /usr/local/src/ [root@huh src]# wget http://nginx.org/down ...

  9. Mysql错误:Ignoring query to other database解决方法

    Mysql错误:Ignoring query to other database解决方法 今天登陆mysql show databases出现Ignoring query to other datab ...

  10. 通过JazzyViewPager来实现Fragment页面间的动画切效果

    JazzyViewPager 开源项目地址: https://github.com/jfeinstein10/JazzyViewPager 其实实现它还是蛮简单的,有两个关键点,一是使用扩展Fragm ...