問題タブ [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.
asp.net - SignalR を使用した複数の Web アプリケーション間の通信
相互に通信する必要がある 2 つの異なる Web アプリケーションがあります (現在、Silverlight Duplex を使用してこれを実現できますが、あまりうまく拡張できません)。SignalR について読んだ後、これを試してみたいと思いますが、これを行う方法に関する多くのドキュメントを見つけることができませんでした。始めるためのアドバイスをいただければ幸いです。
ありがとう!
より具体的な情報: 例: アプリケーション A (入札インターフェース) - 複数のエンドユーザーが特定のアイテムに入札できる Web ページ。
アプリケーション B (管理インターフェース) - ユーザー (または潜在的に複数のユーザー) が入札インターフェースからのアクションを監視/制御できるようにする Web ページ。
したがって、アプリケーション A のユーザーが商品に入札した場合、入札が行われたことをアプリケーション B に通知する方法が必要になります。次に、アプリケーション B から、ユーザーが入札を受け入れることを選択した場合、アプリケーション A にアラートを送り返す必要があります (現在の価格の更新、入札額の引き上げなど...)。
signalr - 信頼性の低い、または一時停止された & 再接続された接続を持つ SignalR?
SignalR を使用するように既存のサイトを更新することを検討しています。私のサイトはサードパーティのサービスをポーリングしてデータの変更を確認し、いくつかの魔法を実行します。クライアントは数分ごとにポーリングして、ビューを更新して更新します。
SignalR は、クライアントからのポーリングを排除する優れた方法のように思えますが、SignalR が切断された接続と再接続された接続をどのように処理するかを知りたいです。特に、しばらく中断された可能性のあるモバイル Web アプリに関してです。それまでに見逃された更新を自動的にネゴシエートしてキューに入れますか? または、このような場合、クライアントは最初から再同期する必要がありますか? 私は見ましたが、これに関するドキュメントが見つからなかったので、ガイダンスをいただければ幸いです。
nservicebus - コードトレースメカニズムとしてのNServiceBus:クラスライブラリからメッセージを送信し、SignalRを使用してWebアプリに表示する
ESBのバックグラウンドがなく、初めてNServiceBusを使用するのに苦労しています。ブログの投稿、サンプル、ドキュメントなどを読んだ後、C#クラスライブラリがメッセージを送信しない理由がわかりません。on Bus.Send(msg)「メッセージMessages.TraceStatementに宛先が指定されていません。メッセージを送信できません。構成ファイルのUnicastBusConfigセクションをチェックして、メッセージタイプにMessageEndpointMappingが存在することを確認してください。」
しかし、最初に、私のアーキテクチャと私がやろうとしていることについて少し説明します。これは、私がそこに見たどのサンプルとも異なるためです。
私の意図は、Benが行ったようにSignalRとNServiceBusを使用することですが、2つの主な変更があります。
- NServiceBus.Host.exeは使用しません。Webのみで、コンソールの実装は必要ありません。
- メッセージは、リアルタイムのコードトレースを目的として、中間層のクラスライブラリから送信されます。つまり、Bus.Sendステートメントをコードの周りに散りばめ、それによってWebページでコード実行トレースステートメント(開発者が設定したアドホック文字列)を表示できるようにしたいのです。
NServiceBusを、私が想像していること(またはテクノロジーの誤用)すらできないほど誤解していないと仮定して、クラスライブラリからメッセージを送信する方法を理解したいと思います。現在、次のようにapp.configファイルを持つ「Managers」dllがあります。
注:Benのプロジェクトでは、「Commands」の名前を「Messages」に変更しました。したがって(私の投稿の上部にあるエラーメッセージを参照してください)、私が知る限り、MessageEndpointMappingを適切に定義しました。(キューがMSMQに存在することを確認しました。)
誰かが私が間違っていることを教えてもらえますか?
また、NServiceBus.Host.exeの依存関係を削除する方法についての情報をいただければ幸いです(BenのサンプルのWorkerプロジェクトを参照してください)。理想的には、クラスライブラリがメッセージを送信し(ターミナルがBenのプロジェクトで行ったように)、Webアプリはサブスクライバーとしてイベントを処理し、SignalRを使用してメッセージを表示できます。
アップデート
現在、Web.configでカバーできると思うので、クラスライブラリプロジェクトの構成DLLを破棄しました。したがって、私のWeb.configは次のようになります。
また、 http: //docs.particular.net/nservicebus/messaging/publish-subscribe/に従って、「NServiceBus_Subscriptions」と呼ばれるプライベートtramsactionalキューを作成しました。
私のGlobal.asax.csにはこれがあります:
signalr - SignalRは内部でどのように機能しますか?
SignalRが内部でどのように高レベルで機能するかを誰かに教えてもらえますか?
私はそれがを使用してデータをフラッシュしていると推測してResponse.Flush
おり、クライアント側では特定の間隔でAjaxリクエストを送信しています。それが正しいか?
c# - SignalRはサーバーでSessionを使用しません
HttpContext
HUBから現在のセッションにアクセスしようとすると、が返されますnull
。
インターフェイスを利用してみましIRequiresSession
たが、うまくいきませんでした。誰かが私を助けることができますか?
asp.net - SignalRから特定のクライアントを呼び出す
サーバーから特定のクライアントを呼び出し、すべてのクライアントにブロードキャストしたくない。問題は、私がいくつかのAJAXリクエストのスコープ内にあり(たとえば、.aspxコードビハインド内)、HubまたはPersistentConnectionではないため、Clientsプロパティを持たないことです-そして、そのajax(jquery)呼び出しを行ったクライアントはクライアントではありませんシグナリングメッセージを送信したい!
これで、JSページの読み込み時に呼び出されるハブが1つあり、新しいクライアントがサーバーの静的リストに登録されるため、クライアントガイドがあります。しかし、それを使用してサーバーから特定のクライアントにメッセージを送信する方法がわかりません。
c# - SignalrDateTime要求/応答の不一致
WCFデータサービスを使用してWebアプリケーションからデータモデルを「クエリ」していますが、SignalRを使用して「プッシュ」更新を受信しています。
WCF Data Services(OData)は、日付を「/ Date(1319493384779)/」の形式の文字列としてフォーマットします。次に、実際のJavascript Date()オブジェクトを作成するクライアント側(javascript)ビューモデルを生成するため、これは問題ありません。SignalRは、サーバーからクライアントに「/ Date(1319493384779)/」としてDateTimeオブジェクトも送信しますが、JavaScriptを介してjavascriptからサーバーハブメソッドに渡す場合、実際のDate()オブジェクトを予期しているように見えます。私はすでにjavascriptにモデルオブジェクトを持っているので、これはかなり非効率的であり、SignalRハブにそのまま送信できるはずです。
なぜこれが起こっているのか誰かが知っていますか?
編集:これはサーバーからブラウザに到着するメッセージです。CreationDateの形式に注意してください。サーバーではこれはCLRDateTimeです。
これはオブジェクトをハブに送り返します-まったく同じ日付形式に注意してください...この呼び出しは失敗します
これはエラーです
このように日付をフォーマットすると、機能します(Javascriptコード):
jquery - MVC3 アプリで別のビューにリダイレクトした後、signalR 接続が切断される
既存の MVC3 アプリケーションに SignalR を実装して、接続されているすべてのクライアントにアラートを送信しようとしています。永続接続を使用しています。これをテストするために、_Layout ページにブロードキャスト ボタンを配置しました。ブロードキャスト ボタンをクリックすると、connection.send($('#msg').val()); を使用してテキストが送信されます。クライアントに正常に受信されます。ただし、これは、アプリの読み込み時にメッセージが最初/デフォルトのページからブロードキャストされた場合にのみ機能します。ページがリダイレクトされると、接続が失われ、[ブロードキャスト] ボタンをクリックすると、エラー メッセージ「SignalR: データを送信する前に接続を開始する必要があります。.send() の前に .start() を呼び出します。ご意見をお聞かせください。サンプル アプリケーションのコードは次のとおりです。 Home から About に移動すると、接続が失われることに注意してください。
c# - SignalRHubが指定されたJavaScriptを実行していません
ASP.Net WebアプリケーションプロジェクトでSignalRを使用していますが、問題が発生しています。私の目標は、サイトの管理側に変更を加えて、一部のGridViewを更新することです。これを行うには、JavaScriptを実行するためのシグナルを送信し、それによってGridViewを含む更新パネルを更新することを計画していました。
現在の問題は、ハブがクライアントで実行するために呼び出そうとしているコードを取得できないことです。jquery.SignalR.jsファイルからFireBugで次のエラーを受け取りましたが、修正方法がわかりません。
このエラーをスローした後も、接続を設定しているように見えますが、ハブを介して送信されているJavaScriptは実行されません。
私のサイトには次のハブを設定しました。
管理セクションのボタンクリックイベントに次のコードがあります。デバッグは、このコードがサーバーによって実行されていることを示しています。
最後に、このコードがページにあり、シグナルを受信したときにアラートを起動して、動作していることを確認しようとしています。
なぜこれが実行されないのか、またはFireBugエラーが何を意味するのかを誰かが知っていますか?
c# - Signalr /HubはIIS7に読み込まれていませんが、VisualStudioでは正しく機能しています
私は、SignalRを使用するAsp .Net 4.0フレームワーク上のWebアプリケーションに取り組んでおり、Nugetパッケージからインストールしています。ローカルでデバッグせずにアプリケーションをデバッグまたは実行すると、正しく動作します。ただし、本番サーバーにデプロイするとsignal/hubs
、httphandlersに動的に挿入されているファイルを見つけることができません。動的な性質のため、オンザフライで作成する必要があるため、作業ファイルをプロジェクトにコピーすることもできません。
私はファイルをロードする次の方法を試しました:
そして、背後にあるコードでは:
これらはすべてローカルで機能しますが、サーバーでは機能しません。HTMLでレンダリングされたパスは正しいように見えますが、そこにファイルがないため、404エラーが発生します。重要な場合、サーバーはアプリケーションに完全な信頼を与えており、アプリケーションはサブドメインを使用するIISの別のサイトでアプリケーションとして実行されています。