无法读取未定义的属性'notificationHub'

时间:2017-04-16 19:22:10

标签: asp.net-mvc signalr signalr-hub

我正在努力使用SignalR在我的MVC应用程序中收到通知但我收到以下错误在最后一行代码的浏览器上调试时无法读取未定义的属性'notificationHub'

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



private void SqlDep_OnChange(object sender, SqlNotificationEventArgs e)
        {
            if (e.Type == SqlNotificationType.Change)
            {
                SqlDependency sqlDep = sender as SqlDependency;
                var notificationHub = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
                notificationHub.Clients.All.notify("added");
                RegisterNotification(DateTime.Now);
            }
        }

 <script src="~/Scripts/jquery-3.1.1.min.js"></script>
    <script src="~/Scripts/jquery.signalR-2.2.1.min.js"></script>
    <script src="/signalr/hubs" ></script>
    <script src="~/Scripts/bootstrap.min.js"></script>

 var notificationHub = $.connection.notificationHub;

1 个答案:

答案 0 :(得分:0)

以这种方式将集线器映射到SignalR管道:

using Microsoft.Owin;  
using Owin;  
using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
[assembly: OwinStartup(typeof(WeatherAppDemo.SignalR.StartUp))]  
namespace WeatherAppDemo.SignalR {  
    public class StartUp {  
        public void Configuration(IAppBuilder app) {  
            app.MapSignalR();  
        }  
    }  
} 

我们必须做两件事 -  1.我们首先启动StartUp类  2.将集线器添加到SignalR管道

现在你必须检查这个网址:

http://localhost:58416/signalr/hubs 

// http://localhost:58416这将是您自己的localhost

如果您能够看到JavaScript代码,那么您已成功配置SignalR服务器。 然后我希望你没有发现错误