asp.net mvc 4 プロジェクトに埋め込まれたチャットを作成しています。OnConnected でユーザーを追加し、OnDisconnected で削除するオンライン ユーザー ul リストがあります。
したがって、私のアプリは SinglePage アプリではありません。つまり、常にページが更新されます。
ページが更新されるたびに Signalr が OnDisconnected と OnConnected を呼び出すため、クライアント側でこのオンライン ユーザー リストを処理する際に問題が発生しています。
他のクライアントがアプリで正常にナビゲートしている間、ページが更新されるたびに削除および追加され続けます。
クライアントでこの動作を回避するにはどうすればよいですか?
usersOnlineリストでページを実行しているクライアントで、このようなことをしようとしています...
var timeout;
chat.client.login = function (chatUser) {
addUser(chatUser);
window.clearTimeout(timeout);
};
chat.client.logout = function (chatUser) {
timeout = setTimeout(function () { removeUser(chatUser.Id); }, 3000);
};
しかし、マルチユーザーのシナリオに対処するのに苦労しています...タイムアウトが実行される前に複数のユーザーがハブ onDisconnected を実行すると、2 番目のユーザーが最初のインスタンスをオーバーライドするためです。