問題タブ [signalr]
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.
c# - SignalRを使用するときにハブ内で選択的にブロードキャストする方法
単一のハブのサブスクライバーがいるという問題を解決しようとしていますが、それらは異なる都市から来ており、私のページはそれらが由来する都市を検出します。私は誰もが聞く単一のハブを持っており、このハブから特定の都市にメッセージを選択的にブロードキャストしたいと思います。
アプローチが間違っているかどうか、またはハブを介してメッセージを選択的に送信する方法をアドバイスしてください。PersistentConnectionAPIの下位アプローチに進む必要があるかもしれません。
前もって感謝します。
結果についてコメントするためにこの質問に戻ってきました。私が本当にやらなければならないことは、友人関係やグループ関係だけに基づいて存在し、都市によって関連付けられたダイナミックな部屋を作ることでした。各「グループ」は人の視点に固有であるため、可能性が多すぎます。これはSignalRを使用して理解するのが難しすぎたため、JavaScriptに最も慣れているので、node.jsとsocket.ioのハッシュと配列を使用してJavaScriptでコーディングしました。Node.jsはコンパイルされておらず、c#はすでにノードがセールスポイントとして宣伝している非同期のものを許可しているため、高速ではありません。したがって、これをSignalRのノックと見なさないでください。共有するだけです。興味がある場合は、githubでのリンクを次に示します:https ://github.com/sebringj/zipstory-node
c# - SignalR で読み取り専用のブロードキャスト ビューを使用する方法
サーバーからの内部プロセスからのみメッセージを発信し、クライアントに発信したいのですが、SignalR の柔軟性のために、XSS がメッセージ "myhub.addMessage" を簡単に送信し、ブロードキャストしたくないガベージを送信できるのではないかと心配しています。たとえば、SignalR Hub からのメッセージをリッスンしているページに 50 人がいるとします。GUI を介してメッセージを送信する明示的な方法はありませんが、頭の悪い人が簡単にいくつかのスクリプトをハックして、全員が見られるようにメッセージを送信し始めることができます。
言い換えれば、チャットルームを持つようなものですが、人々がメッセージを送信するのを防ぎたい. あなたは彼らに聞いてもらいたいだけです。理にかなっていますか?
javascript - SignalRをRequireJSとどのように連携させますか?
ハブでSignalRを使用する場合は、srcが「/ signalr /hubs」のスクリプトを含める必要があります。つまり、拡張子が.jsではありません。これをRequireJSで使用しようとすると、「。js」拡張子を追加する必要があります。これは、ハブプロキシがロードされないことを意味します。
それをやめる方法はありますか?
c# - 高負荷時に SignalR が失敗する
非常に負荷の高い Web サイトがあり、テスト アプリを非表示の iframe の下に置いて、ターゲット フレームワークがユース ケースに適していることを確認しています。最初にSignalRテストアプリを試し、次に同じサーバー構成でPokeinを試しました。現在、Flash リモーティング ソリューションを使用していますが、まもなく変更する予定です。
Web サイトの負荷が高い状態でクライアントの同時更新を処理するために、SignalR ベースのテスト アプリケーションを作成するのに時間を費やしました。シナリオ(一部のクライアントがメッセージを要求する)ではうまく機能していました.接続されているクライアントのほとんどが同時にメッセージを要求すると、劇的に失敗しました(iframe呼び出しから削除する必要がありました)..私は私のサーバー構成が問題だと思っていましたが、同じシナリオは他の有料ソリューション Pokein でも問題なく動作します。
私が忘れるトリックはありますか?
2012 年 2 月 10 日更新: PokeIn をソリューションに実装することにしましたが、Github で最新の SignalR コードを試しました (他の人にとっては役立つかもしれません)。結果は同じです。
2012 年 3 月 13 日更新: シナリオ: (もう一度) - 接続されている数千のクライアントに一定の間隔 (1 秒) でメッセージを送信してみてください。テストして結果を確認するのは難しくありません。このタイプの非常に一般的な使用法についてライブラリにストレスを与えているのは私だけだと思います。
詳細 (再現方法 - Github の 0.5 でテスト) - Server 2008 R2 32GB DDR3, i7-2600 3.4Ghz, 2x256 GB Crucial M4 - ASP.NET 3.5
- シングルページアプリ。サーバーからのクライアント側の時刻を毎秒更新します
このページは、実際の負荷テストを行うために、いくつかの Web サイトによって読み込まれる非表示の iframe に埋め込まれています。
問題
ある時点 (約 800 ユーザー) でシステムがロックされ、ほとんどのクライアントがサーバーから更新された時間を取得できません。
システムがロックされると、その 1 つのアプリ ページが応答を停止します
また、間隔を 5 秒に増やしてみました。今回はシステムの応答性が向上しましたが (約 950 ユーザー)、結果は同じでした。これを .NET 2 および .NET 4 アプリケーション プールで試しました。
これらの詳細で十分であることを願っています。このテストを繰り返すことは私にとって非常に簡単であり、空き時間を見つけたらすぐに、将来のバージョンでテストを繰り返します.
asp.net-mvc - SignalR のハブからのバックボーン モデル
このスクリプトを、SignaR Hub を使用できるバックボーンのモデルに作成/変換するにはどうすればよいですか? 例えば:
編集
私はこれを思いついた:
しかし、これは次のエラーのために機能していません:
このエラー: :55885 予期しない応答コード: 200
signalr - SignalRは、外部アプリケーションからクライアントにメッセージを送信します
別のプロセスからハブに接続されているクライアントにメッセージを送信することは可能ですか?ハブプロジェクトのDLLを参照するようにLINQPadを設定し、LINQPadプロセスにデバッグをアタッチするようにVSを設定しました。私のプロジェクトには、次のコードを使用するHubNotificationクラスがあります。
デバッグ中、このコードが呼び出されているのを確認できますが、接続されているクライアントにメッセージが送信されることはありません。上記のコードの実行時にHTTPが発生しないことをFiddlerで確認しました。私は何かが足りないのですか、それともこれは不可能ですか?
asp.net-mvc - SignalR.Client On -eventhandler はイベントを受信していません
前提:
IIS ベースの ASP.NET MVC3 アプリケーションのクライアントとして機能する Windows サービスがあります。それらは両方とも同じマシン上で実行されており、SignalR を介して相互に通信できるようにしようとしています。
Windows サービスで Nuget からダウンロードした SignalR.Client ライブラリを使用していますが、IIS に正常に接続しています。ただし、MVC 側の SignalR ハブから関数を呼び出しているため、クライアント (Windows サービスを含む) に伝播する必要があります。Windows サービスはイベントを受信していません。
私が試したこと:
サーバー側のイベントをさまざまな方法でサブスクライブしようとしましたが、現在のコードは次のとおりです。
次に、IIS 側で次のように呼び出します。
それで、私はWindowsサービスから何かを呼び出そうとしましたが、それらは完全に機能しますが、情報がIIS-> Windowsサービスから移動する必要がある場合、まったく何も起こりません.
現在、SignalR の内部に動的バインディングが含まれているため、例外がスローされていません。これをデバッグする方法がまったくわかりません。イベント ビューアでアプリケーション ログを確認しましたが、決定的なものはありません。
IIS がローカル マシンに接続することを (セキュリティ対策として) 許可しないシステムが Windows に存在するのではないかと考えていますが、接続が一方の方向では完全に機能し、もう一方の方向では機能しないのは奇妙です。
これをデバッグする方法、または実際にこれが何であるかについてのアイデアはありますか?
よろしく、 ラリ
signalr - SignalR の Clients.method 呼び出しからクライアントを除外する方法はありますか?
SignalR (たまたま Knockoutjs で使用されている) を評価して、それを使用してクライアントに同時実行の問題を通知できるかどうかを確認しています。基本的に、ユーザー「a」がレコードを保存し、ユーザー「b、c、d、e、f、g」に通知されます。基本的に、すべてのクライアントに通知する例があります。だから私はほとんどそこにいると思います。
私はこのリンクに出会い、それが私が現在いる現在の道に私を導いてくれました。Githubのドキュメントも見てきました。
Clients.method()
基本的に、単一のクライアントを呼び出しから除外したいと考えています。クライアントをループして ClientId をチェックする方法がわかりません。これを達成するために私が見ることができる唯一の他の方法は、グループを使用して追跡することを検討することですが、それは少し面倒に思えましたが、それにも問題がありました.
mono - mono を使用した Nginx、SiginalR、FastCGI: アプリケーションが見つかりません
これらすべてでセットアップを実行しようとしていますが、今はとてもうまくいきません。主に Websocket をテストしたいのですが、IIS 7.5 ではサポートされていないため、Nginx と Mono/FastCGI でセットアップしようとしています。
したがって、すべてが Windows ベースであり、Linux も UNIX もありません。つまり、Windows です。現在、http://localhost:7171/app (またはhttp://127.0.0.1:7171/app ) を呼び出して得られるのは、次のエラーだけです。
現在の構成は次のとおりです。
fastcgi.conf
fastcgi_params
nginx.conf
そして、fastcgi を開始するために使用されるコマンド行は次のとおりです。
本当にありがとう!