問題タブ [real-time]

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.

0 投票する
5 に答える
947 参照

tcp - リアルタイム コマンドに TCP を使用する: Nagle アルゴリズムが原因で大幅な遅延が発生します。どうすればよいですか?

私はソケット サーバーとフラッシュ ゲーム クライアントを書いています。このゲームでは、移動や回転などのリアルタイム コマンドが必要です。これらのコマンドがサーバーからクライアントにできるだけ早く送信されることが重要です。そうしないと、他のクライアントが移動/向きを変えるクライアントとの同期が大幅に失われるためです。

これは、ネーグル算術によって引き起こされる問題の例です。

: これらのコマンドの意味を理解したい場合は、以下のコマンド表を参照してください。

最初のものは私が動かした船です(前進+右、前進は受信されましたが、右ではありません)

コマンドを送信するクライアント:

コマンドを受信するクライアント:

「瞬間」は私が言おうとしていることを意味しない奇妙な用語ですが、ここでは前のコマンドからのミリ秒単位の時間のようです

  1. クライアント A が送信 (瞬間: 0)、クライアント B が受信 (瞬間: 0)

  2. 右折 クライアント A が送信 (瞬間: 0)、クライアント B が受信 (瞬間: 155)

  3. クライアントAによる送信の停止(瞬間:108)、クライアントBによる受信(瞬間:0)

  4. クライアントAが送信を停止する(瞬間:0)、クライアントBが受信する(瞬間:0)

  5. クライアント A によって送信された転送 (瞬間: 1283)、クライアント B によって受信された (瞬間: 1236)

  6. 右折 クライアント A が送信 (瞬間: 1)、クライアント B が受信 (瞬間: 273)

  7. クライアント A が送信した動きの停止 (瞬間: 186)、クライアント B が受信した (瞬間: 0)

  8. クライアント A による送信の回転を停止 (瞬間: 30)、クライアント B によって受信 (瞬間: 0)

これは、コマンドに対応するコマンド テーブルです。

クライアント -> サーバー

サーバー -> クライアント

つまり、"Nagle" のためにコマンドが完全に非同期になっていることがわかります。これにより、移動停止コマンドが移動開始コマンドと同時に他のクライアントによって受信され、そのプレイヤーはまったく移動しなくなります。

これが、これらのコマンドを TCP サーバーによって可能な限り高速にリアルタイムで送信する必要がある理由です。簡単な修正方法は、単に Nagle を無効にすることです。しかし、私はググってみました (tcp メッセージのパーシャルに関する彼の提案は私のシステムに実装されていますが、タイミングとは何の関係もないことに注意してください)。

この原因に対して Nagle アルゴリズムを無効にするべきではなく、代わりに他の解決策を探すべきであるというのは本当ですか? なぜだめですか)?

前もって感謝します。- トム

0 投票する
3 に答える
40954 参照

real-time - Webページにリアルタイムでデータを表示

どのように表現すればよいかわかりませんが、私が探しているのは、データが利用可能になったときに Web ページにデータを表示する方法です。例: Web ページに IRC チャネル メッセージを表示する場合、メッセージが IRC チャネルに送信されると、メッセージは同時に (またはほとんど遅延せずに) Web ページに出力されます。または、データがデータベースに挿入されると、同時に Web ページに出力されます (再び、またはほとんど遅延せずに)。そのような機能はどのように実装されていますか? そのような機能は JS/JQuery で実装できますか? それが Mibbit の動作 (AJAX) のように見えるためです。どこから始めればいいのか、何が必要なのかまったくわからないので、例または疑似コードの説明をいただければ幸いです。

0 投票する
1 に答える
466 参照

wpf - ViewModelツリーと頻繁に更新されるモデルツリー

私のWPFMVVMアプリケーションでは、私のモデルはモデルオブジェクトの複雑なツリーであり、実行時に絶えず変化します。モデルインスタンスは実行時に出入りし、ツリー内での位置を変更し、もちろん多くのプロパティを変更します。マイビューは、そのツリーをほぼ1対1で視覚的に表現したものです。すべてのモデルインスタンスは、ケースの80%で、ツリー内のノードでもあります。

私の質問は、これを中心にViewModelをどのように設計するかということです。私の問題は、それぞれが非常に多くのプロパティを持つ非常に多くの異なるモデルタイプがあることです。MVVMを正しく理解している場合、ビューはモデルと直接通信しないはずです。つまり、モデルタイプごとにViewModelタイプを作成し、モデルタイプの各プロパティをViewModelに再ラップする必要があります。

また、ViewModelは、モデルのpropertychangesに「バインド」して、ビューに渡す必要があります(wpf datatbindingを使用)。新しく表示される各モデルのViewModelインスタンスを作成して導入するファクトリが必要であり、対応するモデルが消えたときに各ViewModelインスタンスを破棄する必要があります。作成したすべてのインスタンスを追跡することになります。この二重の折り返しが原因で、どれだけの膨張コードが生成されるかは信じられないほどです。これは本当に良いアプローチですか?各エンティティと各プロパティは2回存在し、モデルとビューの同期を維持するための追加のコードがたくさんあります。これをどのように処理しますか?これを解決するためのより賢い方法はありますか?

誰かが私よりも優れているこのためのリファレンス/サンプル実装を持っていますか?

0 投票する
1 に答える
290 参照

javascript - PubSubHubbub からリアルタイムの更新を取得するページを作成する方法

PubSubHubbubを使用するフィードから継続的に更新を受信するページを作成するために、javascript/html または php などを使用できるかどうかを知りたいですか?

これどうやってするの?私はこれが初めてで、ヒントがあれば役に立ちます。

0 投票する
3 に答える
14246 参照

network-programming - Java および Objective-C のゲーム用のリアルタイム ゲーム ネットワーキング ライブラリ

専用の Java サーバーと iphone クライアント、および Java デスクトップ クライアントを使用して構築されたリアルタイム ゲームの構築を検討しています。リアルタイムのマルチプレイヤー ゲーム開発に使用できる、Java および iPhone (特に信頼性の高い UDP) 用の高性能ネットワーク トランスポート ライブラリはどれですか?

ほとんどのリアルタイム アクション ベースのゲーム (Counter-Strike、Left4Dead、Quake III) に対する一般的なアドバイスは、UDP/IP トランスポート プロトコルを使用してメッセージを「信頼できない」パケットとして送信し、TCP の「保証された」配信を優先することです (問題があるため)。簡単に制御できない再送信と遅延の問題がある場合)。

  • Half-Life ソース エンジン ネットワークの概要
  • Quake III Networking もう 1 つのアドバイスは、UDP パケットの配信を「オプションで」保証できる信頼性の高い UDP プロトコルを構築することです (ただし、ゲームが順不同で処理できる限り、TCP ストリームなどの配信順序を保証することはできません)。パケット)。

Project Darkstarは、C++ バインディングを備えた Java MMO サーバーです (一般的なマルチプレイヤー ゲーム用の軽量リアルタイム ネットワーク ライブラリとしては少し重い)。

信頼できるUDPのためにCで書かれたライブラリを見てきました: - Enet - 信頼できるUDPライブラリ - Cocoa AsyncSocket

0 投票する
1 に答える
191 参照

php - クラウド上にIMチャットサービスを作成することは可能ですか?

Google AppEngineまたはAmazonEC2で、(明らかに)リアルタイムのチャットツールを作成することは可能ですか?その動機は、サーバーのセットアップを避け、需要の急増に対処することです。

このためのオープンソースツールはありますか?

Amazon EC2などでプッシュ通知を有効にしたもの(COMETなど)を設定することはできますか?コストが高すぎますか?

0 投票する
2 に答える
128 参照

ajax - AJAX とアクションの予測

これについてご意見をお聞きしたいです。これは理論的な問題です。

私は、AJAX を使用してサーバーと通信するユーザーに表示されるインターフェイスを持っている状況にあります。ここでは、サーバー側の言語は問題ではありません。フィールドを持つフォームがあり、それぞれが削除可能です。ユーザーがいくつかの「削除」チェックボックスを選択して更新を押した場合、次の 2 つのオプションがあります。

オプション 1: フィールドを削除するときは、JavaScript を使用して HTML をすぐに削除し、バックグラウンドで AJAX を実行してそれらのフィールドを削除します。これにより、高速なインターフェイスの外観が実現され、ユーザー エクスペリエンスが向上します。ただし、サーバー側で AJAX 呼び出しが失敗した場合 (フィールドを削除できなかった場合)、以前に削除された HTML フィールドは、ユーザーに (それらが削除されているという) 誤った仮定を与えます。

オプション 2: フィールドを削除するときは、AJAX を実行します。その成功に応じて、HTML を削除するか、または削除しません。これにより、ユーザーに正確なフィードバックが提供されますが、フォームは AJAX 呼び出しが終了するまでフリーズします = 遅くなります。

あなたの考えは何ですか?どちらのアプローチを採用するのが良いと思われますか、またはそれをオプションにする必要がありますか?

0 投票する
1 に答える
635 参照

linux - mq_send はアトミックですか?

mq_send の実行中にマルチスレッド プログラムが SIGSTOP シグナルを受信するとどうなるか教えてもらえますか?

0 投票する
1 に答える
921 参照

pdf - リアルタイムのドキュメント追跡をどのように行っていますか?

diff Document Tracking オプションを検討していたところ、DocTracking.comに出会いました。DocTracking.com では、ドキュメント (PDF Word など) をアップロードし、目に見えない追跡機能を追加してドキュメントを返します。このドキュメントは、他の方法でドキュメントを使用する場合と同じように使用できます。この追跡により、ドキュメントがいつ開かれたか、誰が開いたか (IP)、ドキュメントが再度開かれたり転送されたりした場合の開封位置、読まれたページと読まれた時間、印刷されたものがわかります。これを行う方法についてのリードをいただければ幸いです。

0 投票する
6 に答える
2672 参照

garbage-collection - リアルタイム システムのガベージ コレクタ

私は C#/Java が初めてで、ソフト リアルタイム システム用にプロトタイプを作成する予定です。

メモリ管理に関して C++ で行うのと同じように C#/Java アプリを作成した場合、つまり、使用しなくなったオブジェクトを明示的に「削除」した場合、アプリはガベージ コレクターの影響を受けますか? もしそうなら、それは私のアプリにどのように影響しますか?

これが明白な答えのように聞こえる場合は申し訳ありませんが、新しいので、徹底したいと思います。