RemoteFunction

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

L'objet RemoteFunction facilite la communication synchronisée en deux sens à travers la frontière client-serveur.Vous pouvez l'utiliser pour définir une fonction de rappel personnalisée et l'invoquer manuellement en appelant RemoteFunction:InvokeClient() ou RemoteFunction:InvokeServer() .Le code invoquant la fonction produit jusqu'à ce qu'il reçoive une réponse du destinataire.

Pour que le serveur et les clients aient accès à une instance RemoteFunction , il doit être à un endroit où les deux parties peuvent la voir, comme ReplicatedStorage , bien que dans certains cas, il soit approprié de la stocker dans Workspace ou à l'intérieur d'un Tool .

Si le résultat est pas nécessaire, il est recommandé d'utiliser un RemoteEvent à la place, car son appel est asynchrone et n'a pas besoin d'attendre une réponse pour poursuivre l'exécution.Voir Événements et rappels à distance pour des échantillons de code et des détails supplémentaires sur RemoteFunction .

Précautions de streaming

Notez que si une invocation de RemoteFunction crée une instance sur le serveur, il n'y a aucune garantie qu'elle existe sur le client lorsque la fonction retourne.Ceci est particulièrement important dans les endroits où le streaming d'instance est activé et lorsque les instances créées sont BaseParts ou Models , car les parties qui sont loin du personnage du joueur peuvent ne pas être diffusées au client, et les modèles qui sont Atomic dépendent du fait que leurs parties sont diffusées.Même si un modèle est Persistent , il peut y avoir un certain délai entre la création du modèle et le moment où il est répliqué au client.

Limites des paramètres

Tout type d'objet Roblox tel qu'un Enum , Instance ou d'autres peut être passé en tant que paramètre lorsqu'un RemoteFunction est invoqué, ainsi que des types Luau tels que des nombres, des chaînes et des booléens, bien que vous deviez explorer soigneusement les limites .

Résumé

Méthodes

Rappels

Propriétés

Méthodes

InvokeClient

Rendement

Invoque le RemoteFunction qui à son tour appelle le rappel OnClientInvoke.Puisque cette méthode est utilisée pour communiquer du serveur vers un client, elle ne fonctionnera que lorsqu'elle est utilisée dans un Script .

Tout type d'objet Roblox tel qu'un Enum , Instance ou d'autres peut être passé en tant que paramètre à InvokeClient() , ainsi que des types Luau tels que des nombres, des chaînes et des booléens, bien que vous deviez explorer soigneusement les limites .

Voir événements à distance et rappels pour des échantillons de code et des détails supplémentaires sur RemoteFunction .

Avertissement

En pratique, le serveur n'invite pas souvent le client, car les clients n'ont généralement pas d'informations que le serveur n'a pas, et les actions que seul un client peut prendre, telles que l'affichage d'une interface interface utilisateur graphique, n'ont généralement pas besoin d'un rappel.En tant que tel, RemoteEvent:FireClient() est recommandé comme méthode asynchrone qui n'a pas besoin d'attendre une réponse pour poursuivre l'exécution.

Si vous devez légitimement invoquer un client depuis le serveur, notez les risques suivants :

  • Si le client lance une erreur, le serveur lance également l'erreur.
  • Si le client se déconnecte pendant qu'il est invoqué, InvokeClient() lance une erreur.
  • Si le client ne renvoie pas de valeur, le serveur produit à jamais.

Paramètres

player: Player

Le Player associé au client à invoquer.

Valeur par défaut : ""
arguments: Tuple

Valeurs à transmettre au rappel OnClientInvoke .

Valeur par défaut : ""

Retours

Valeurs renvoyées par le rappel OnClientInvoke.

InvokeServer

Rendement

Invoque le RemoteFunction qui à son tour appelle le rappel OnServerInvoke.Puisque cette méthode est utilisée pour communiquer d'un client au serveur, elle ne fonctionnera que lorsqu'elle est utilisée dans un LocalScript .

Si un résultat retourné n'est pas nécessaire, il est recommandé d'utiliser RemoteEvent:FireServer() à la place, car son appel est asynchrone et n'a pas besoin d'attendre une réponse pour poursuivre l'exécution.

Tout type d'objet Roblox tel qu'un Enum , Instance ou d'autres peut être passé en tant que paramètre à InvokeServer() , ainsi que des types Luau tels que des nombres, des chaînes et des booléens, bien que vous deviez explorer soigneusement les limites .

Voir événements à distance et rappels pour des échantillons de code et des détails supplémentaires sur RemoteFunction .

Paramètres

arguments: Tuple

Valeurs à transmettre au rappel OnServerInvoke .

Valeur par défaut : ""

Retours

Valeurs renvoyées par le rappel OnServerInvoke.

Évènements

Rappels

OnClientInvoke

Ce rappel est appelé lorsque le RemoteFunction est invoqué avec InvokeClient() .Lorsque la fonction liée renvoie, les valeurs renvoyées sont renvoyées au serveur d'appel.

Voir événements à distance et rappels pour des échantillons de code et des détails supplémentaires sur OnClientInvoke .

Paramètres

arguments: Tuple

Les paramètres envoyés via InvokeClient() .


Retours

Valeurs renvoyées par la fonction de rappel.

OnServerInvoke

Ce rappel est appelé lorsque le RemoteFunction est invoqué avec InvokeServer() .Lorsque la fonction liée renvoie, les valeurs renvoyées sont renvoyées au client d'appel.

Voir événements à distance et rappels pour des échantillons de code et des détails supplémentaires sur OnServerInvoke .

Paramètres

player: Player

Le Player associé au client d'où provient l'appel InvokeServer().

arguments: Tuple

Les paramètres envoyés via InvokeServer() .


Retours

Valeurs renvoyées par la fonction de rappel.