3-5. サーバー・クライアント間の通信
サーバー・クライアント間の通信
サーバー・クライアント間の通信の概要
Robloxでのサーバー・クライアント間の通信は、エクスペリエンスの中核を担う大事な要素です。自動的な同期は存在しますが、任意のタイミングでの特定の通信が必要な場合もあります。はサーバーとクライアント間のイベント駆動型通信を可能にし、は双方向の通信を実現します。
これは前項のととの関係に似ています。ただし、は通信により戻りが来るまで処理がブロックされるため、適切なエラーハンドリングとリスク管理が必要なことに留意が必要です。
RemoteEventによる実装例
以下がRemoteEventによる通信処理の例です。
イベントの定義側
イベントの呼び出し側
RemoteEventは単方向通信であり、通信結果を待つ必要がないため、低リスクで使用できます。
RemoteFunctionによる実装例
関数の定義側
関数の呼び出し側
RemoteFunctionは双方向通信を行い、通信の戻り値が必要な場合に使用しますが、ブロックが発生するため、リスクを考慮する必要があります。
RemoteEvent /RemoteFunction利用時の留意事項
イベントへの引数には制限があることに注意
イベントの引数に複雑なデータ構造を使用する場合、いくつかの制約があります。これにより、想定外のトラブルが発生する可能性があるため、引数はできるだけシンプルに保つか、引数として許可されているデータタイプのルールを理解することが重要です。
RemoteEventを使うほうがセーフティ
RemoteFunctionの同期型の通信処理は、通信の遅延や問題が結果に影響を及ぼすリスクがあります。また、通信中呼び出し側の処理はブロックされるため、適切な扱いが必要です。これに対し、RemoteEventは非同期的な通信を可能にし、より低リスクでの使用が可能です。リモート通信には、RemoteEventで済ませられる場合にはRemoteEventを利用するのが無難と言えます。