2017-09-18 8 views
4

.net 4.7でsignalRを使用して、クライアントアプリケーションからsignalRサーバに2つの変数を渡すことができました。ここでは、コードスニペットは、次のように.net core 2.0のアプリケーションでsignalRヘッダまたはクエリ文字列を使用してデータを渡す方法

public class MyHub : Hub 
{ 
    protected (string myVar1, string myVar2) GetValues() => 
      (
      Context.QueryString["MyVariable1"] ?? string.Empty, 
      Context.QueryString["MyVariable2"] ?? string.Empty, 
      ); 
} 

JavaScriptクライアントは、これらの変数を設定します:

$.connection.hub.qs = {'MyVariable1' : 'val1', 'MyVariable2' : 'val2'}; 

を今、私たちは.NETコア2.0アプリケーションのためのsignalRのアルファリリースに移行しようとしています。ブロッカは、もはやこのメソッドを使用してmyVar1とmyVar2の値を取得できないということです。 QueryStringだけでなく、ヘッダーも使用できません。この状況を克服して、クライアントアプリケーション(Typescript)または.netコアアプリケーションからの変数をsignalRサーバー側に渡すための最良の方法は何ですか? また、クライアントサイドでどのように変数を設定しますか?

答えて

8

あなたはこのようなあなたのハブにHttpContextにアクセスすることができます。

var httpContext = Context.Connection.GetHttpContext(); 

、その後、他の人に変数の値に

+0

注意を得るためにhttpContext.Request.Query["MyVariable"]を使用します。これは、拡張メソッドであるあなたがそれを見ることはありませんので、 Microsoft.AspNetCore.SignalR名前空間を含めるまで表示されます。 –

+0

こんにちは、あなたはCとの接続でパラメータを挿入するいくつかの例を与えることができる#? HubConnectionBuilderを使用して接続を作成し、開始しています。 –

+0

接続を開始するために渡すクエリ文字列にパラメータを追加するだけですか? – Pawel

関連する問題