SignalR:如何将消息广播到应用程序的其他页面

时间:2015-04-06 14:27:39

标签: signalr signalr-hub signalr.client

我正在创建一个测试应用,可以下载一些文件,下载成功通知将传播到管理员,类似于通知 www.ge.tt,或Facebook的面板通知。

我有两页

一)Download.aspx

B)LandingPage.aspx

Download.aspx

    function PushNotification() {
        alert("I ran Upto Here");
        //Declare a proxy to Reference a Hub
        var notification = $.connection.notificationHub;

        //Start a Connection
        $.connection.hub.start().done(function () {
            notification.server.send(21);
            //$("#hdnFileId").val()
            alert("I ran Upto Here 2 ");


        });
        notification.client.broadcastMessage = function (FileID) {

            alert("file was Downloaded" + FileID);
        };
    }

这里有两个不同的标签/浏览器工作正常,如果页面加载,则显示alert消息。

但我想在我的LandingPage.aspx

中使用brodcast消息

这是Js

$(function () {

var notification = $.connection.notificationHub;

    notification.client.broadcastMessage = function (FileID) {

    alert("file was Downloaded" + FileID);
};

});

我的轮班......

namespace TestApplication.Entities
{
  public class NotificationHub : Hub
  {
    //public void Hello()
    //{
    //    Clients.All.hello();
    //}

    public void Send(int FileID)
    {
        Clients.All.broadcastMessage(FileID);
    }
}
}

但通知没有来到这里,这里有什么不对吗?

1 个答案:

答案 0 :(得分:2)

您未在LandingPage.aspx

中开始连接

LandingPage.aspx

中尝试这样做
var notification = $.connection.notificationHub;
$.connection.hub.start(); 
notification.client.broadcastMessage = function (FileID) {
   alert("file was Downloaded" + FileID);
};