0

この質問は初心者のようですが、私はこのフォーラムでもGoogleで検索してきましたが、探しているものを正確に見つけることができませんでした.

コントローラーにリスニング モードのSonimMQオブジェクトがあるため、1 つまたは複数のメッセージを受信すると、それらを解析してビュー(リアルタイム更新の場合はグリッドまたはチャート) に送信します。コントローラ イベント (この場合は_OnReceiveData SonicMQ イベント) からクライアント リクエストなしでビューにデータを送信する方法はありますか?

コントローラーからデータをプルするために jQuery ( setTimeout ) を使用してタイマーを実装できることはわかっていますが、これを実装する別の方法があるかどうかを知りたいだけです。

jQuery .Controllerについても読んだことがありますが、「 Controller events 」ではなく、マウスとキーボードのイベントでのみ機能するようです。

ここで見つけた最も近い答えはこれですが、jQuery setTimeout を使用しています。

私はデスクトップ アプリケーションの開発者であり、デスクトップ アプリケーション モデルのようにこれを解決しようとしているため、おそらくパラダイムの問題です。私はWeb開発を始めたばかりです。ですから、この質問が非常に明白である場合は、ご容赦ください。

助けていただければ幸いです。ありがとう!

4

2 に答える 2

3

あなたはWebソケットを求めていると思います。このリンクを見てください では、ASP.NET MVC と WebSockets?

現時点では、SignalR が最善の策のようです。

于 2013-07-22T17:57:41.260 に答える
2

短い答えはノーだと言いたいのですが、質問の前後関係がもう少し必要です。

コードを共有できますか?

SonimMQ は長時間実行されるサービスであり、この場合はメッセージ キューであると推測しています。

コントローラーは、リクエストよりも長く存続しません (通常、一度に数秒)。各リクエストは別のリクエストから分離されています (ほとんどの場合、リクエスト間でデータを共有する方法があります)

長時間実行されるプロセスを探している場合は、Windows サービスなどのサービスを使用できます。少しハックですが、HttpCache API を使用してタイムアウトを設定できます。

Web に移行するデスクトップ開発者にとって最も難しい概念は、Web のステートレス性です。デスクトップの世界では、状態を保存し、イベントに基づいてアクションをトリガーできます。Web の世界では、これはあまり当てはまりません。多くの点で、これは Web の美しさですが、Web の呪いでもあります。最終的には Web でのデスクトップ エクスペリエンスが必要だからです。

于 2013-07-22T17:47:38.130 に答える