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");


        }

私のハブはこのように定義されています

 [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 に答える