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 de 1 seconde) en utilisant des sujets.Les sujets sont des chaînes définies par le développeur (1–80 caractères) que les serveurs utilisent pour envoyer et recevoir des messages.

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

Messagerie entre serveurs explore comment communiquer entre serveurs plus en détail.

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

Limites

Notez que ces limites sont sujettes à changement.


<th>Maximum</th>
</tr>
</thead>
<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 sur 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 toute la partie</b>
</td>
<td>
(400 + 200 \* nombre de serveurs) par minute
</td>
</tr>
<tr>
<td>
<b>Abonnements autorisés par serveur de jeu</b>
</td>
<td>
20 + 8 \* (nombre de joueurs sur ce serveur de jeu)
</td>
</tr>
<tr>
<td>
<b>S'abonner aux demandes par serveur de jeu</b>
</td>
<td>
240 demandes par minute
</td>
</tr>
</tbody>
Limite

Résumé

Méthodes

Propriétés

Méthodes

PublishAsync

()
Rendement

Cette fonction envoie le message fourni à tous les abonnés au sujet, déclençant l'invocation de leurs rappels enregistrés.

Rendements jusqu'à ce que le message soit reçu par le backend.

Paramètres

topic: string

Détermine où le message est envoyé.

Valeur par défaut : ""
message: Variant

Les données à inclure dans le message.

Valeur par défaut : ""

Retours

()

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

Le rappel est invoqué avec un seul argument, une table avec les entrées suivantes :


<th>Sommaire</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>Données</b>
</td>
<td>
Chargement fourni par le développeur
</td>
</tr>
<tr>
<td>
<b>Envoyé</b>
</td>
<td>
Heure Unix en secondes à laquelle le message a été envoyé
</td>
</tr>
</tbody>
Domaine

Il produit jusqu'à ce que l'abonnement soit correctement enregistré et renvoie un objet de connexion.

Pour vous désabonner, appelez Disconnect() sur l'objet retourné.Une fois appelé, le rappel ne doit jamais être invoqué.Tuer le script contenant les connexions provoque également l'annulation de l'abonnement à la connexion sous-jacente.

Voir aussi MessagingService:PublishAsync() qui envoie le message fourni à tous les abonnés au sujet, déclençant l'invocation de leurs rappels enregistrés.

Paramètres

topic: string

Détermine où écouter les messages.

Valeur par défaut : ""
callback: function

Fonction à invoquer chaque fois qu'un message est reçu.

Valeur par défaut : ""

Retours

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

Échantillons de code

This example demonstrates how to use MessagingService:SubscribeAsync() to listen to a topic for cross-server chat within a game universe.

When a player joins, the example subscribes to the topic player-<player.UserId>. When a message is sent with this topic, the connected callback executes and prints Received message for <player.Name">. It also disconnects the connection when the player's ancestry changes.

In order for this to work as expected it must be placed in a server Script.

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