MessagingService

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Nicht erstellbar
Dienst
Nicht repliziert

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

Eigenschaften

Methoden

PublishAsync

()
Angehalten

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

topic: string

Bestimmt, wo die Nachricht gesendet wird.

Standardwert: ""
message: Variant

Die Daten, die in die Nachricht einzufügen sind.

Standardwert: ""

Rückgaben

()

SubscribeAsync

Angehalten

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

topic: string

Bestimmt, wo auf Nachrichten zu hören ist.

Standardwert: ""
callback: function

Funktion, die immer dann aufgerufen wird, wenn eine Nachricht empfangen wird.

Standardwert: ""

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.

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)

Ereignisse