Ich erstelle ein Chatboard und ich benutze signalR, um Benutzer wissen zu lassen, wenn ein neuer Kommentar zu einem Status/Post hinzugefügt wird.signalR connection.hub Funktion nicht in react Komponente
Ich benutze React und ich habe versucht, Ereignislistener für die Hub-Funktion in verschiedenen Komponenten hinzufügen, in einigen Komponenten funktioniert es, andere nicht.
Dies ist die Nabe:
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);
}
}
}
ich den Ereignis-Listener in der componentDidMound Funktion aufrufen:
componentDidMount: function() {
this.commentUpdateListener();
},
Und das ist der Ereignis-Listener:
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();
},
ich habe Reagieren Komponente für einen Post/Status, eine Komponente für die "Wand/Newsfeed" und dann habe ich eine Komponente für die "c Box "für jeden Status an der Wand, wo die Kommentare gerendert werden.
Wenn ich den Event-Listener in der Wand-Komponente oder der Post-Komponente platziert, funktioniert es, und die "updateNewComponent" -Funktion wird aufgerufen, aber nicht, wenn ich es in der "Kommentarbox" -Komponente platzieren.
Noch "im Kommentar-Update Listener!" wird protokolliert, egal wo ich den Event-Listener platziere, aber die Hub-Funktion wird nicht immer aufgerufen, und es scheint wichtig zu sein, in welcher Komponente der Event-Listener platziert ist.
Ist der $ .connection.commentHub nicht am Leben? Schließt es? Gibt es einen Grund, warum die Funktion nicht immer aufgerufen wird?