私はチャットボードを作成していますが、signalRを使用して、ステータス/投稿に新しいコメントが追加されたときにお知らせします。signalR connection.hub関数が反応コンポーネント内で呼び出されていません
私はReactを使用していますが、ハブ関数のイベントリスナーをさまざまなコンポーネントに追加しようとしましたが、一部のコンポーネントでは動作しますが、他のコンポーネントでは機能しません。
これはハブです:私が持っている
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();
},
:
componentDidMount: function() {
this.commentUpdateListener();
},
そして、これはイベントリスナーである:
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機能にイベントリスナーを呼び出しますポスト/ステータス、壁/ニュースフィードのコンポーネント、そして "c"のコンポーネントを持っていますコメント欄が表示されている壁のステータスごとに「省略欄」が表示されます。
イベントリスナーを壁コンポーネントまたはポストコンポーネントに配置すると、それが機能し、 'updateNewComponent'関数が呼び出されますが、「コメントボックス」コンポーネントに配置すると機能しません。
まだ「コメント更新リスナーで!」私はイベントリスナーをどこに置いてもログに記録されますが、ハブ関数は常に呼び出されるわけではなく、イベントリスナーがどのような反応コンポーネントに配置されるかは重要です。
$ .connection.commentHubは存続しませんか?それは閉じていますか? 関数が常に呼び出されるとは限りませんか?