MessagingService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
MessagingService ermöglicht es Servern derselben Erfahrung, in Echtzeit miteinander zu kommunizieren (weniger als 1 Sekunde) mit Themen.Themen sind von Entwicklern definierte Zeichenketten (1–80 Zeichen), die Server verwenden, um Nachrichten zu senden und zu empfangen.
Lieferung ist die beste Anstrengung und nicht garantiert. Stellen Sie sicher, dass Sie Ihr Erlebnis so architekturieren, dass Lieferungsausfälle nicht kritisch sind.
Cross-Server-Messaging erörtert, wie man sich detaillierter zwischen Servern kommuniziert.
Wenn du ad-hoc-Nachrichten auf Live-Spielservern veröffentlichen möchtest, kannst du die Open Cloud APIs verwenden.
Beschränkungen
Beachte, dass diese Limits sich ändern können.
<th>Maximal</th></tr></thead><tbody><tr><td><b>Größe der Nachricht</b></td><td>1kB</td></tr><tr><td><b>Nachrichten pro Spielserver gesendet</b></td><td>600 + 240 \* (anzahl der spieler auf diesem server) pro minute</td></tr><tr><td><b>Nachrichten pro Thema empfangen</b></td><td>(40 + 80 \* anzahl der server) pro minute</td></tr><tr><td><b>Nachrichten für das gesamte Spiel empfangen</b></td><td>(400 + 200 \* anzahl der server) pro minute</td></tr><tr><td><b>Abos pro Spielserver erlaubt</b></td><td>20 + 8 \* (anzahl der spieler auf diesem server)</td></tr><tr><td><b>Abonnementanfragen pro Spielserver</b></td><td>240 anfragen pro minute</td></tr></tbody>
Begrenzung |
---|
Zusammenfassung
Methoden
Ruft den angegebenen Rückruf immer dann auf, wenn eine Nachricht in das Thema geschoben wird.
Fängt an, auf das angegebene Thema zu hören.
Eigenschaften
Methoden
PublishAsync
Diese Funktion sendet die bereitgestellte Nachricht an alle Abonnenten des Themas und löst damit aus, dass ihre registrierten Rückrufe aufgerufen werden.
Gibt bis die Nachricht vom Backend empfangen wird.
Parameter
Bestimmt, wo die Nachricht gesendet wird.
Die Daten, die in die Nachricht einzufügen sind.
Rückgaben
SubscribeAsync
Diese Funktion registriert einen Rückruf, um zu beginnen, auf das angegebene Thema zu hören.Der Rückruf wird ausgelöst, wenn ein Thema eine Nachricht erhält.Es kann mehrmals für dasselbe Thema aufgerufen werden.
Rückruf
Der Rückruf wird mit einem einzigen Argument aufgerufen, einer Tabelle mit den folgenden Einträgen:
<th>Übersicht</th></tr></thead><tbody><tr><td><b>Daten</b></td><td>Entwickler lieferte Ladung</td></tr><tr><td><b>Gesendet</b></td><td>Unix-Zeit in Sekunden, in denen die Nachricht gesendet wurde</td></tr></tbody>
Bereich |
---|
Es gibt bis zur Registrierung der Abonnement ordnungsgemäß zurück und gibt ein Objektzurück.
Um sich abzumelden, rufe Disconnect() auf das zurückgegebene Objekt auf.Sobald es aufgerufen wurde, sollte der Rückruf nie ausgeführt werden.Das Töten des Skripts, das die Verbindungen enthält, verursacht auch, dass die zugrunde liegende Verbindung abbestellt wird.
Siehe auch MessagingService:PublishAsync(), das die bereitgestellte Nachricht an alle Abonnenten des Themas sendet, wodurch ihre registrierten Rückrufe ausgelöst werden.
Parameter
Bestimmt, wo auf Nachrichten zu hören ist.
Funktion, die immer dann aufgerufen wird, wenn eine Nachricht empfangen wird.
Rückgaben
Verbindung, die verwendet werden kann, um sich vom Thema abzumelden.
Code-Beispiele
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.
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)