ユーザーがグループに参加したり、グループに再参加したりすると、すぐに通知を受け取ることができます。ここで何か間違ったことをしているのかどうかはわかりませんが、ユーザーが離れたときに通知を受け取ることができません。
クライアントでハブを開始するためのコードを次に示します。
$.connection.hub.start();
これが私が接続を停止するために使用しているものです。
$.connection.hub.stop();
停止してもユーザーが切断されないように見えるため、グループ内の他のユーザーを更新して、その接続をセッションから削除することはできません。
コールバックされるクライアント コード
$.connection.hub.proxies.collaboratorhub.client.joined = function (connectionId) {
//
console.log('joined : ' + connectionId);
};
$.connection.hub.proxies.collaboratorhub.client.joined = function (connectionId) {
//
console.log('Re joined : ' + connectionId);
};
$.connection.hub.proxies.collaboratorhub.client.gone = function (connectionId) {
//
console.log('gone : ' + connectionId);
};
サーバー側の c# コードは次のとおりです。
public override Task OnConnected()
{
string pid = this.Context.QueryString["pid"];
Groups.Add(this.Context.ConnectionId, pid);
return Clients.Group(pid).joined(Context.ConnectionId);
}
public override Task OnDisconnected()
{
string pid = this.Context.QueryString["pid"];
Groups.Remove(Context.ConnectionId, pid);
return Clients.Group(pid).gone(Context.ConnectionId);
}
public override Task OnReconnected()
{
string pid = this.Context.QueryString["pid"];
return Clients.Group(pid).rejoined(Context.ConnectionId);
}
参加と再参加は完全に機能しますが、切断は機能しません。
ここで何が欠けていますか?