MessagingService
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
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 |
---|
Sommario
Proprietà
Metodi
Invoca il callback fornito ogni volta che un messaggio viene spinto al topic.
Inizia ad ascoltare l'argomento dato.
Proprietà
Metodi
PublishAsync
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
Determina dove viene inviato il messaggio.
I dati da includere nel Messaggio.
Restituzioni
SubscribeAsync
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
Determina dove ascoltare i messaggi.
Funzione da invocare ogni volta che viene ricevuto un messaggio.
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.
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)