私は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()関数が内部的に呼び出されたときに例外がスローされます。
がGlobalHostの代替である - ここではいくつかのコードです:https://github.com/aspnet/ SignalR/issues/884 – Pawel
LOL! -1とは何ですか?これは誰のために働かないのですか? –
応答が正しくありません - 最初に実際に可能である間は両方が可能ではなく、おそらく2番目はおそらく接続を開始せずに送信しようとしていると言います。まだSignalRのバグ(アルファ版について話していることに注意してください)では、接続を開始せずに何も送信されないと予想されます。 (NullReferenceExceptionの完全なスタックトレースは、問題がどこにあるのかをピンで指摘するのに役立ち、コードを修正して動作させるのに役立ちます)。 – Pawel