Я создаю чат-панель, и я использую signalR, чтобы пользователи могли знать, когда добавляется новый комментарий о статусе/сообщении.signalR connection.hub функция не вызвана в компоненте реакции
Я использую React, и я попытался добавить прослушиватели событий для функции концентратора в разных компонентах, в некоторых компонентах он работает, а не в других.
Это ступица:
public class CommentHub : Hub
{
public void UpdateComments(int postId)
{
try
{
var context = GlobalHost.ConnectionManager.GetHubContext<CommentHub>();
context.Clients.All.updateNewComments(postId);
}
catch (Exception ex)
{
Log.Error(ex.Message);
}
}
}
Я называю слушателя событий в функции componentDidMound:
componentDidMount: function() {
this.commentUpdateListener();
},
И это слушатель события:
commentUpdateListener: function() {
console.log("in the comment update listener!");
var commentHub = $.connection.commentHub;
commentHub.client.updateNewComments = function (postId) {
console.log("updateNewComments called!");
};
$.connection.hub.start();
},
У меня есть реагировать на компонент/должность, компонент для "wall/newsfeed", а затем у меня есть компонент для "c omment box "для каждого статуса на стене, где отображаются комментарии.
Когда я помещаю прослушиватель событий в компонент стены или компонент post, он работает, и функция «updateNewComponent» вызывается, но не тогда, когда я помещаю ее в компонент «комментарий».
По-прежнему "в комментарии для прослушивания обновлений!" регистрируется независимо от того, где я размещаю прослушиватель событий, но функция-концентратор не всегда вызывается, и, похоже, имеет значение в том, какой компонент реагирует на прослушиватель событий.
Неужели $ .connection.commentHub не останется в живых? Закрывается ли она? Есть ли причина, по которой функция не всегда называется?