Переменные 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 не возвращается должным образом.
Во-вторых, является ли ваш хаб статическим классом? Не видя, как вы настраиваете свой концентратор, трудно сказать, что может пойти не так.