Переменные SignalR сбрасываются

С моей программой SignalR мой клиент вызывал метод на стороне сервера. Мои глобальные переменные не работали правильно, поэтому я провел небольшой тест и выяснил, что глобальные переменные, кажется, сбрасываются каждый раз, мне было интересно, что я делаю неправильно, и могу ли я помешать сбросу моих переменных.

Метод JavaScript:

  $.connection.hub.start().done(function () {
            $('#send').click(function () {
                chat.server.send(0, document.getElementById("Name").value, document.getElementById("Content").value);//send eventually calls broadcastArray

            });
        });

Метод концентратора:

int i = 0;
    public void BroadcastArray()
    {
        var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
        hubContext.Clients.All.broadcastArray(messageArr);
        i = i + 1;
    }

Независимо от того, сколько раз я назвал метод i всегда возвращался как 1, как я могу остановить сброс переменных? Есть ли способ сделать это в классе концентратора, или я бы сохранить мои переменные в другом классе? Я не совсем уверен, как это сделать.

1 ответ

Решение

Первое, что я хотел бы сделать, это поместить его в try/catch, чтобы увидеть, не выдает ли он ошибку до того, как он попадет в эту строку. Я мог бы молча вызвать исключение, если ваш hubcontext не возвращается должным образом.

Во-вторых, является ли ваш хаб статическим классом? Не видя, как вы настраиваете свой концентратор, трудно сказать, что может пойти не так.

Другие вопросы по тегам