MessagingService

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.

Création impossible
Service
Non répliqué

MessagingService permet aux serveurs de la même expérience de communiquer entre eux en temps réel (moins d'un seconde) en utilisant des sujets. Les sujets sont des chaînes de caractères (1–80 caractères) que les serveurs utilisent pour envoyer et recevoir des messages.

La livraison est le meilleur effort et n'est pas garanti. Assurez-vous d'architecturer votre expérience pour que les échecs de la livraison ne soient pas critiques.

Messagerie entre serveurs Cross-Server explore comment communiquer entre les serveurs dans plus de détails.

Si vous souhaitez publier des messages ad hoc sur les serveurs de jeu en direct, vous pouvez utiliser les Open Cloud APIs.

Limites

Notez que ces limites sont sujettes à changement.


<tbody>
<tr>
<td>
<b>Taille du message</b>
</td>
<td>
1kB
</td>
</tr>
<tr>
<td>
<b>Messages envoyés par serveur de jeu</b>
</td>
<td>
600 + 240 \* (nombre de joueurs dans ce serveur de jeu) par minute
</td>
</tr>
<tr>
<td>
<b>Messages reçus par sujet</b>
</td>
<td>
(40 + 80 \* nombre de serveurs) par minute
</td>
</tr>
<tr>
<td>
<b>Messages reçus pour le jeu entier</b>
</td>
<td>
(400 + 200 \* nombre de serveurs) par minute
</td>
</tr>
<tr>
<td>
<b>Souscriptions autorisées par serveur de jeu</b>
</td>
<td>
20 + 8 \* (nombre de joueurs dans ce serveur de jeu)
</td>
</tr>
<tr>
<td>
<b>Abonnement aux demandes par serveur du jeu</b>
</td>
<td>
240 demandes par minute
</td>
</tr>
</tbody>
LimiteMaximum

Résumé

Méthodes

Propriétés

Méthodes

PublishAsync

void
Rendement

Cette fonction envoie le message fourni à tous les abonnés au sujet, ce qui déclenche l'appel enregistré pour être invoqué.

Expire jusqu'à ce que le message soit reçu par le serveur.

Paramètres

topic: string

Détermine l'endroit où le message est envoyé.

message: Variant

Les données à inclure dans le message.


Retours

void

SubscribeAsync

Rendement

Cette fonction enregistre un rappel pour commencer à écouter le sujet donné. Le rappel est invoqué lorsqu'un sujet reçoit un message. Il peut être appelé plusieurs fois pour le même sujet.

rappel

L'appel est invoqué avec un seul argument, une table contenant les entrées suivantes :


<tbody>
<tr>
<td>
<b>Données</b>
</td>
<td>
Chargement du développeur
</td>
</tr>
<tr>
<td>
<b>envoyé</b>
</td>
<td>
Temps Unix en secondes à laquelle le message a été envoyé
</td>
</tr>
</tbody>
ChampRésumé

Il génère jusqu'à ce que l'abonnement soit correctement enregistré et renvoie un objet de connexion.

Pour vous désabonner, appelez Disconnect() sur l'objet renvoyé. Une fois appelé, le rappel ne devrait jamais être invoqué. Tuer le script contenant les connexions entraîne également la désabonnement de la connexion sous-jacente.

Voir également MessagingService:PublishAsync() qui envoie le message fourni à tous les abonnés au sujet, ce qui déclenche l'appel enregistré pour être invoqué.

Paramètres

topic: string

Détermine où écouter les messages.

callback: function

Fonction à être invoquée chaque fois qu'un message est reçu.


Retours

Connexion qui peut être utilisée pour se désabonner du sujet.

Échantillons de code

Subscribing to Cross Server Messages

local MessagingService = game:GetService("MessagingService")
local Players = game:GetService("Players")
local function onPlayerAdded(player)
--subscribe to the topic
local topic = "player-" .. player.UserId
local connection = MessagingService:SubscribeAsync(topic, function(message)
print("Received message for", player.Name, message.Data)
end)
player.AncestryChanged:Connect(function()
-- unsubscribe from the topic
connection:Disconnect()
end)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Évènements