MessagingService

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Assistenza
Non Replicato

MessagingService consente ai server della stessa esperienza di comunicare tra loro in tempo reale (meno di 1 secondo) utilizzando argomenti.Gli argomenti sono stringhe definite dall'utente (1–80 caratteri) che i server utilizzano per inviare e ricevere messaggi.

La consegna è il miglior sforzo e non è garantita. Assicurati di architettare la tua esperienza in modo che i fallimenti di consegna non siano critici.

Cross-Server Messaging esplora come comunicare tra server in modo più dettagliato.

Se vuoi pubblicare messaggi ad-hoc su server di gioco dal vivo, puoi usare le API Cloud aperte.

Limitazioni

Si noti che questi limiti sono soggetti a cambiamento.


<th>Massimo</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>Dimensione del messaggio</b>
</td>
<td>
1kB
</td>
</tr>
<tr>
<td>
<b>Messaggi inviati per server di gioco</b>
</td>
<td>
600 + 240\* (numbero di giocatori in questo serverdi gioco) per minuto
</td>
</tr>
<tr>
<td>
<b>Messaggi ricevuti per argomento</b>
</td>
<td>
(40 + 80 \* numero di server) al minuto
</td>
</tr>
<tr>
<td>
<b>Messaggi ricevuti per l'intero gioco</b>
</td>
<td>
(400 + 200 \* numero di server) al minuto
</td>
</tr>
<tr>
<td>
<b>Abbonamenti consentiti per il server di gioco</b>
</td>
<td>
20 + 8 \* (numbero di giocatori in questo serverdi gioco)
</td>
</tr>
<tr>
<td>
<b>Sottoscrivere richieste per server di gioco</b>
</td>
<td>
240 richieste al minuto
</td>
</tr>
</tbody>
Limite

Proprietà

Metodi

PublishAsync

()
Resa

Questa funzione invia il messaggio fornito a tutti gli iscritti al topic, attivando le loro richieste di richiamo registrate.

Produce fino a quando il messaggio non viene ricevuto dal backend.

Parametri

topic: string

Determina dove viene inviato il messaggio.

Valore predefinito: ""
message: Variant

I dati da includere nel Messaggio.

Valore predefinito: ""

Restituzioni

()

SubscribeAsync

Resa

Questa funzione registra un callback per iniziare a ascoltare il tema specificato.Il richiamo viene invocato quando un argomento riceve un Messaggio.Può essere chiamato più volte per lo stesso argomento.

Richiamo

Il richiamo viene eseguito con un singolo argomento, una tabella con le seguenti entrate:


<th>Sommariamente</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>Dati</b>
</td>
<td>
payload fornito dallo sviluppatore
</td>
</tr>
<tr>
<td>
<b>Inviato</b>
</td>
<td>
Ora Unix in secondi in cui è stato inviato il messaggio
</td>
</tr>
</tbody>
Campo

Produce fino a quando l'abbonamento non viene registrato correttamente e restituisce un oggetto di connessione.

Per disiscriversi, chiama Disconnect() sull'oggetto restituito.Una volta chiamato, il callback non deve mai essere invocato.L'uccisione dello script contenente le connessioni causa anche l'annullamento dell'abbonamento alla connessione sottostante.

Vedi anche MessagingService:PublishAsync() che invia il messaggio fornito a tutti gli iscritti al topic, attivando le loro richieste di richiamo registrate.

Parametri

topic: string

Determina dove ascoltare i messaggi.

Valore predefinito: ""
callback: function

Funzione da invocare ogni volta che viene ricevuto un messaggio.

Valore predefinito: ""

Restituzioni

Connessione che può essere utilizzata per disiscriversi dall'argomento.

Campioni di codice

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)

Eventi