3-5. サーバー・クライアント間の通信

サーバー・クライアント間の通信

サーバー・クライアント間の通信の概要

Robloxでのサーバー・クライアント間の通信は、エクスペリエンスの中核を担う大事な要素です。自動的な同期は存在しますが、任意のタイミングでの特定の通信が必要な場合もあります。はサーバーとクライアント間のイベント駆動型通信を可能にし、は双方向の通信を実現します。
これは前項のとの関係に似ています。ただし、は通信により戻りが来るまで処理がブロックされるため、適切なエラーハンドリングとリスク管理が必要なことに留意が必要です。

RemoteEventによる実装例

以下がRemoteEventによる通信処理の例です。

イベントの定義側

イベントの呼び出し側

RemoteEventは単方向通信であり、通信結果を待つ必要がないため、低リスクで使用できます。

RemoteFunctionによる実装例

関数の定義側

関数の呼び出し側

RemoteFunctionは双方向通信を行い、通信の戻り値が必要な場合に使用しますが、ブロックが発生するため、リスクを考慮する必要があります。

RemoteEvent /RemoteFunction利用時の留意事項

イベントへの引数には制限があることに注意

イベントの引数に複雑なデータ構造を使用する場合、いくつかの制約があります。これにより、想定外のトラブルが発生する可能性があるため、引数はできるだけシンプルに保つか、引数として許可されているデータタイプのルールを理解することが重要です。

RemoteEventを使うほうがセーフティ

RemoteFunctionの同期型の通信処理は、通信の遅延や問題が結果に影響を及ぼすリスクがあります。また、通信中呼び出し側の処理はブロックされるため、適切な扱いが必要です。これに対し、RemoteEventは非同期的な通信を可能にし、より低リスクでの使用が可能です。リモート通信には、RemoteEventで済ませられる場合にはRemoteEventを利用するのが無難と言えます。

参照すべき情報