2

我正在尝试使用 signalR 集线器实现推送通知。我有一个示例代码,当我运行它时,我收到一条错误消息说 JavaScript 运行时错误:'Rx' is undefined

此错误出现在动态信号器/集线器文件中。我已经添加了所有必要的 Javascript 参考,即 jquery、signalR 和 signalr/hubs。

我错过了什么?

我的代码看起来像这样:

Global.asax 文件有这个

public class Global : System.Web.HttpApplication
    {

        protected void Application_Start(object sender, EventArgs e)
        {


            RouteTable.Routes.MapHubs("~/signalr");


        }

我的 Hub 是这样定义的

 [HubName("HealthCheck")]
    public class MyConnectionClass : Hub
    {
        public static List<string> messages = new List<string>();

        public void GetServiceState()
        {
            Clients.updateMessages(messages);
        }

        public void UpdateServiceState()
        {
            messages.Add(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"));

            Clients.updateMessages(messages);
        }

我的客户在 javascript 中是这样的

 $(function () {
                // creates a proxy to the health check hub
                var healthCheckHub = $.connection.healthCheck;

                // handles the callback sent from the server
                healthCheckHub.updateMessages = function (data) {
                    $("li").remove();

                    $.each(data, function () {
                        $('#messages').append('<li>' + this + '</li>');
                    });
                };

                $("#trigger").click(function () {
                    healthCheckHub.server.updateServiceState();
                });

                // Start the connection and request current state
                $.connection.hub.start(function () {
                    healthCheckHub.server.getServiceState();
                });
            });

我还在客户端中添加了所有必要的 js 引用。我从这里挑选了这个样本 这够了吗还是我错过了什么?

谢谢

4

1 回答 1

0

鉴于错误是关于未定义 Rx,我想知道您是否安装了错误的 NuGet 包。听起来您安装了SignalR.Reactive

我认为是你真正想要的包。(请注意,这是一个预发布版本,我认为软件包名称最近发生了变化,因此您所遵循的教程可能有点过时,这可能是造成混乱的原因。)

于 2012-12-17T13:53:05.310 回答