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



我正在创建一个测试应用程序,在那里可以下载一些文件,下载成功后通知将传播到管理员,类似于中的通知www.ge.tt,或Facebook上的小组通知。

我有两页

a) 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);
    }
}
}

但是通知没有来,怎么了?

您没有在LandingPage.aspx 中启动连接

LandingPage.aspx 中这样尝试

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

相关内容

最新更新