1

ユーザーがグループに参加したり、グループに再参加したりすると、すぐに通知を受け取ることができます。ここで何か間違ったことをしているのかどうかはわかりませんが、ユーザーが離れたときに通知を受け取ることができません。

クライアントでハブを開始するためのコードを次に示します。

$.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);
}

参加と再参加は完全に機能しますが、切断は機能しません。

ここで何が欠けていますか?

4

0 に答える 0