0

私はsignalRウェブサイト.netコアを設定しました。私のハブでMy機能は次のとおりです。using signalR .netコアクライアント

public async Task Notify(int id) { 
    await Clients.All.InvokeAsync("Notified", id); 
} 

私も次のJSでこれをテストしています

let connection = new signalR.HubConnection(myURL); 

    connection.on('Notified', data => { 
     console.log(4, data); 
    }); 

    connection.start(); 

をjsのコードが正常に動作するようです、私はconnection.Invoke('Notify')をしようとするとき、私は、ログを参照してください。

今、私は起動する必要があるコンソールアプリケーションを持っています。私はこれを2つの方法で試していますが、どちらの解決策も気にしません。1. idを受け取り、「通知済み」を呼び出すことができるsignalR Webサイト内のmvcコントローラ。 2.コンソールアプリケーションでクライアントライブラリMicrosoft.AspNetCore.SignalR.Clientを使用します。

方法私はこれだけのような古典的なasp.netで行った:

GlobalHost.ConnectionManager.GetHubContext(hubName) 

しかし、.NETコアでこれを行うための方法を見つけることができませんでした。

私は、ライブラリを使用し、これまでのところ、これを試してみましたウェイ:

var con = new HubConnectionBuilder(); 
con.WithUrl(myURL);  
var connection = con.Build(); 
connection.InvokeAsync("Notify",args[0]).Wait(); 

これは私がJSコードと同じように、接続を作成するために来ている最も近いです。ただし、このコードはconnection.InvokeAsyncを呼び出すときにnullポインタをスローします。 connectionオブジェクトはnullではありません。それはnullである内部オブジェクトのようです。スタックトレースによると、MoveNext()関数が内部的に呼び出されたときに例外がスローされます。

答えて

-1

よく現れていないようです。今のところ私はちょうど一時的な強制的な方法を使用しました。

私が作成され、ハブのため、以下の基本クラスを使用している:あなたはIHubContextを注入する私の応答を1として

public abstract class MyHub : Hub 
{ 

    private static Dictionary<string, IHubClients> _clients = new Dictionary<string, IHubClients>(); 

    public override Task OnConnectedAsync() 
    { 
     var c = base.OnConnectedAsync(); 
     _clients.Remove(Name); 
     _clients.Add(Name, Clients); 
     return c; 
    } 

    public static IHubClients GetClients(string Name) { 
     return _clients.GetValueOrDefault(Name); 
    } 

} 
+0

がGlobalHostの代替である - ここではいくつかのコードです:https://github.com/aspnet/ SignalR/issues/884 – Pawel

+0

LOL! -1とは何ですか?これは誰のために働かないのですか? –

+0

応答が正しくありません - 最初に実際に可能である間は両方が可能ではなく、おそらく2番目はおそらく接続を開始せずに送信しようとしていると言います。まだSignalRのバグ(アルファ版について話していることに注意してください)では、接続を開始せずに何も送信されないと予想されます。 (NullReferenceExceptionの完全なスタックトレースは、問題がどこにあるのかをピンで指摘するのに役立ち、コードを修正して動作させるのに役立ちます)。 – Pawel

0
  1. GlobalHostはなくなりました。あなたはIHubContext<THub>のように注入する必要がありますthis sample.

  2. これはSignalR alpha1のバグです。 https://github.com/aspnet/signalrに問題を提出することができますか?

関連する問題