問題タブ [signalr-hub]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - SignalR+アクションメソッドを介してハブにメッセージを投稿する
SignalRのハブ機能(https://github.com/SignalR/SignalR)を使用して、サブスクライブしているすべてのクライアントにメッセージを公開しています。
これは、Javascriptを介して「送信」を呼び出す場合は正常に機能しますが、Webアプリケーションでメッセージを公開することもできます(ASP.NET MVCアクションメソッド内から)。NewsFeedHubで新しいオブジェクトをインスタンス化してSendメソッドを呼び出しようとしましたが、エラーが発生します(ハブの基になる「接続」が設定されていないため)。接続せずにハブを使用する方法はありますか?
c# - システムの他の場所から SignalR ハブ クライアントを呼び出す
サーバーとクライアントの間で通信するための SignalR ハブをセットアップしました。ハブ サーバー側のコードは、Hooking.cs というクラスに格納されます。私が望むのは、Hooking.cs で定義されたメソッドを呼び出して、アプリケーションのどこからでも、接続されているクライアントにメッセージをブロードキャストできるようにすることです。クライアント/サーバーの呼び出しごとに Hooking.cs の新しいインスタンスが作成されるようです。
次のような Hooking.cs で定義されているメソッド Test() を使用して
そしてクライアント側のjavascriptを使って
Clients は静的ではないため、静的メソッドからアクセスできないため、残念ながらそれほど単純ではありません。
SignalR のソース コードを調べると、有望そうなメソッドに出くわしたHubs.Invoke(string hubName, string method, params object[] args)
ので、 のようなものを使用できればと思いますが、機能さHubs.Invoke("Hooking", "Test")
せることはできません。
これに関する任意の助けをいただければ幸いです
c# - SignalRはサーバーでSessionを使用しません
HttpContext
HUBから現在のセッションにアクセスしようとすると、が返されますnull
。
インターフェイスを利用してみましIRequiresSession
たが、うまくいきませんでした。誰かが私を助けることができますか?
c# - Signalr /HubはIIS7に読み込まれていませんが、VisualStudioでは正しく機能しています
私は、SignalRを使用するAsp .Net 4.0フレームワーク上のWebアプリケーションに取り組んでおり、Nugetパッケージからインストールしています。ローカルでデバッグせずにアプリケーションをデバッグまたは実行すると、正しく動作します。ただし、本番サーバーにデプロイするとsignal/hubs
、httphandlersに動的に挿入されているファイルを見つけることができません。動的な性質のため、オンザフライで作成する必要があるため、作業ファイルをプロジェクトにコピーすることもできません。
私はファイルをロードする次の方法を試しました:
そして、背後にあるコードでは:
これらはすべてローカルで機能しますが、サーバーでは機能しません。HTMLでレンダリングされたパスは正しいように見えますが、そこにファイルがないため、404エラーが発生します。重要な場合、サーバーはアプリケーションに完全な信頼を与えており、アプリケーションはサブドメインを使用するIISの別のサイトでアプリケーションとして実行されています。
asp.net-mvc-3 - SignalR+依存性注入に関する質問
MVC3アプリケーションでSignalRを使用しています。コントローラーにStructureMapDependencyInjectionを実装したので、ハブでも同じことを実行したいのですが、機能しないようです。
以下の私のコードの何が問題になっているのか教えてください:
SignalRSmDependencyResolver.cs
SignalRExtensionsRegistry.cs
IoC.cs
AppStart_Structuremap.cs
NotificationsHub.cs
ありがとう
asp.net-mvc - すべてのクライアントに対して同じ SignalR ハブを作成する
アプリケーションを監視するための SignalR のテストを開始したところです。クライアント側でハブを呼び出すコントロールがあります。クライアントが Connection.Hub.Start() を作成するたびに、サーバーに新しい Hub インスタンスが作成されることに気付きました。常にコントロールを更新する必要があるため、それぞれに新しいハブを作成したくありません。
すべてのクライアントに対して単一のハブを作成する方法はありますか、それとも足りないものがありますか?
.net - SignalR ハブのスケーラビリティの問題
StatusUpdateHub という SignalR ハブがあります。このハブは、HubClient と呼ばれる .NET クライアントによって更新されます。このクライアントは (本番環境では) さまざまなトランザクションのために複数のユーザーによって毎秒約 1000 回呼び出されます。クライアントコードは次のとおりです。
このコードが 100 人の同時ユーザーで呼び出されると正常に動作しますが、同時ユーザー数を 250 に増やすと、次のエラーが表示されます。
UpdateBrowser の予期しないエラー: System.InvalidOperationException: 接続が確立されていません。SignalR.Client.Connection.SignalR.Client.IConnection.Send[T](文字列データ) で SignalR.Client.Hubs.HubProxy.Invoke[T](String メソッド、Object[] args) で SignalR.Client.Hubs。 HubProxy.Invoke(String method, Object[] args) at Application.Services.HubClient.<>c_ DisplayClass2.b _0(Task task1) in c:\Build\Work\Application\Services\HubClient.cs:line 20
at System .Threading.Tasks.Task`1.InvokeFuture(Object futureAsObj)
で System.Threading.Tasks.Task.Execute()
コードをよりスケーラブルにする方法を教えてください。
signalr - ハブクライアントから要求される状態サーバー側の管理
私は本当に基本的なハブを作成し、グループを介しIHubContext
てjavascriptクライアント側メソッドを呼び出します。これにより、異なる接続がいくつあっても、常に同じユーザーにデータをプッシュでき、テキストを渡します。そのテキストは、ブラウザの複数行のテキストボックスに追加されます。
それはすべて本当にうまく機能します。スレッドは通常、長い操作を実行し、多くの場合、ハブコンテキストを使用して操作のステータスを報告するテキストを追加してクライアントを呼び出します。
ただし、誰かがブラウザを閉じて、後でテキストボックスのあるページに戻るという状況に対応したいと思います。
今のところ、彼らは接続している操作のポイントからテキストを受け取り始めます。操作の開始からすべてのテキストを取得するようにクライアントからサーバーにリクエストを送信するにはどうすればよいですか?
私のアイデアはStringBuilder
、クライアントハブに送信するテキストと同じように各行を追加するオブジェクトを作成することでした。
StringBuilder
次に、ハブの接続時に、クライアントからサーバー側の関数を呼び出します。この関数は、オブジェクトから取得できる全文を要求します。ToString();
しかし、ハブStringBuilder
は、まだ実行中のスレッドのどこからオブジェクトを取得するかをどのように知ることができますか?
また
代わりにそれをクライアントにプッシュする方法がある場合、実行中のスレッドでユーザーが接続していることをどのように確認して、をユーザーに送信できStringBuilder
ToString()
ますか?
NB。毎回追加された文字列全体を再送したくありません!ユーザーが接続したばかりで、追いつく必要がある場合のみ。
これを行う方法を理解することは、ハブの外部のサーバーでsignalRと状態を処理する方法を理解するのに役立つと思います。ありがとうございました。
asp.net - SignalR-Httpコンテキストの外部からSilverlightに通知をプッシュする
私はSignalRを初めて使用し、Silverlightクライアントにプッシュ通知を送信しようとしています。
私たちのWebプロジェクトはAsp.NetMVCではなく、ASP.NETだけです。
簡単なハブクラスを作成しました。
問題は、メッセージキュー(Rhino Service Bus)を介してWebサーバーにメッセージが届くということです。メッセージが処理されたら、UIに通知を送信します。ただし、RSBワーカースレッドはHttpContextの外部で実行されているため、SendMessageメソッドを呼び出すとClientsプロパティはnullになります。
ServerHubをHttpCacheに追加し、メッセージコンシューマーから取得することで、これを回避しようとしました。まだ同じ問題があります-ハブのプロパティはnullです。
助言がありますか?
ありがとう。
asp.net-mvc-4 - $.connection.(ハブ名) は未定義です。Signalr/hub 501(未実装)
登録ページを持つ MVC 4 アプリケーションがあります。
ハブのコードは次のとおりです。
同様に、JS ハブ コードは次のとおりです。
今、実行した後、 $.connection.messageHub を undefined として取得します
次に、私のクロムネットワークが表示されます;-
第三に、シグナル/ハブのイニシエータをクリックすると、実装されていないというエラーが表示されます:-
スクリプトの URL を変更しようとしましたが、IIS としても実行されましたが、動作しませんでした。スクリプトを .cshtml (ビュー) に保持して変更すると、ローカル IIS Web サーバーを使用して、問題なく動作します。