21

Connect()インターフェイスにメソッドを実装しIConnectedて、正しいグループに新しい接続を追加します。これは 1 つのことを除いてうまく機能します。ユーザーを正しいグループに追加するには、このメソッドで読み取る値を送信する必要があります。クライアントハブにプロパティを追加してみました:

var uIHub = $.connection.uIHub;
uIHub.SessionType = "Edit";

Connectただし、メソッドからはアクセスできません。

if (string.IsNullOrEmpty(Caller.SessionType) || Caller.SessionType == "Edit") {
     sessionId = WAFContext.EditSession.SessionId.ToString();                
} else {
     sessionId = WAFContext.ViewSession.SessionId.ToString();
}
Groups.Add(Context.ConnectionId, sessionId);

Caller.SessionTypeは常に null です。

これを解決する方法について何か提案はありますか?

4

1 に答える 1

43

メソッドで利用可能なクエリ文字列に情報を追加することで、これを解決しましたIConnected.Connect()

.NET クライアントでは、クエリ文字列を次のように渡しますHubConnection

var connection = new HubConnection("http://localhost:8080/", "myInfo=12345");

JS クライアントではqs、接続を開始する前にプロパティを設定します。

$.connection.hub.qs = "myInfo=12345";

Connect()次に、メソッドでサーバー上のこの情報にアクセスできます。

var myInfo = Context.QueryString["myInfo"];
Groups.Add(Context.ConnectionId, myInfo);
于 2012-09-18T08:55:58.897 に答える