P粉5503233382023-09-06 00:32:52
あなたがやりたいことは本当に難しいです。このようなデバイスの同期は困難です。ハードウェアを所有および制御していない場合、これを行うことはほぼ不可能です。率直に言って、欲しいものは決して手に入らないと思います。
タイムスタンプは機能しません。まず、これらのデバイスはすべて同じタイミングではありません。それらはすべてわずかにずれます。次のアイデアは、サーバーなどの中央ソースから時刻を送信することです。問題は、各デバイスへのデータの送信にかかる時間がランダムで異なることです。数十のパケットの往復時間を事前に計算して遅延を推測することもできますが、それはまだ推測であり、次のパケットでは正確ではない可能性があります。 NTP は、デバイスの時刻をほぼ同じ時刻に保つのに役立ちますが、必要なほど正確ではありません。
たとえ希望する精度が得られたとしても、Android はリアルタイム オペレーティング システムではありません。 iPhoneの場合はそうではありません。アラームを 12:00:00 に設定したとしても、ちょうど 12:00:00.000 にアラームが鳴ることはありません。その後しばらくして、オペレーティング システムにアイドル時間があり、コアがアイドル状態になり、アプリケーションが最も重要なスケジュール済みアプリケーションであるとみなされたときに起動されます。これには数百ミリ秒かかる場合があります。あなたが望む約束を与えることができるオペレーティングシステムがあります。リアルタイム オペレーティング システムとして知られるこれらは、医療機器や高価な機械のコントローラーなど、故障が許されない組み込み機器でよく使用されます。これらは、民生用デバイスで使用されるオペレーティング システムとはまったく異なるアプローチでオペレーティング システムを作成します。
自分のニーズを再考し、より現実的になることを強くお勧めします。欲しいものを入手できるテクノロジーはありますが、インターネット上の消費者向けオペレーティング システム上のランダムなハードウェアでは入手できません。
また、これを実行したい場合は、React Native を使用することはあまりお勧めしません。React Native はガベージ コレクション言語でインタープリタを実行し、タイミングが非常にランダムになります。これが最も予測可能なアプローチであるため、少なくともランチャーを C で作成することをお勧めします。
しかし実際には、自分のニーズを再考してください。なぜ 50 ミリ秒以内に開始する必要があるのでしょうか?インターネット上で何かをするとき、人々が一瞬でも同期していなくても、本当に問題になるのでしょうか?