MessagingService
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
MessagingService permite que los servidores de la misma experiencia se comuniquen entre sí en tiempo real (menos de 1 segundo) usando temas.Los temas son cadenas definidas por el desarrollador (de 1 a 80 caracteres) que los servidores usan para enviar y recibir mensajes.
La entrega es el mejor esfuerzo y no está garantizada. Asegúrese de arquitectar su experiencia para que los fallos de entrega no sean críticos.
Mensajería entre servidores explora cómo comunicarse entre servidores con más detalle.
Si quieres publicar mensajes ad hoc en servidores de juegos en vivo, puedes usar las API abiertas de la nube.
Limitaciones
Tenga en cuenta que estos límites están sujetos a cambios.
<th>Máximo</th></tr></thead><tbody><tr><td><b>Tamaño del mensaje</b></td><td>1kB</td></tr><tr><td><b>Mensajes enviados por servidor de juegos</b></td><td>600 + 240 \* (número de jugadores en este servidor de juegos) por minuto</td></tr><tr><td><b>Mensajes recibidos por tema</b></td><td>(40 + 80 \* número de servidores) por minuto</td></tr><tr><td><b>Mensajes recibidos para todo el juego</b></td><td>(400 + 200 \* número de servidores) por minuto</td></tr><tr><td><b>Suscripciones permitidas por servidor de juegos</b></td><td>20 + 8 \* (número de jugadores en este servidor de juegos)</td></tr><tr><td><b>Suscribir solicitudes por servidor de juegos</b></td><td>240 solicitudes por minuto</td></tr></tbody>
Límite |
---|
Resumen
Métodos
Invoca la llamada de devolución proporcionada cada vez que se envía un mensaje al tema.
Empieza a escuchar el tema dado.
Propiedades
Métodos
PublishAsync
Esta función envía el mensaje proporcionado a todos los suscriptores del tema, lo que hace que se invoquen sus llamadas registradas.
Produce hasta que el mensaje sea recibido por el backend.
Parámetros
Determina dónde se envía el mensaje.
Los datos que se incluyen en el mensaje.
Devuelve
SubscribeAsync
Esta función registra una llamada de devolución para comenzar a escuchar el tema dado.La llamada de devolución se invoca cuando un tema recibe un mensaje.Se puede llamar varias veces para el mismo tema.
Devolución de llamada
La llamada de devolución se invoca con un solo argumento, una tabla con las siguientes entradas:
<th>Resumen</th></tr></thead><tbody><tr><td><b>Datos</b></td><td>Carga útil proporcionada por el desarrollador</td></tr><tr><td><b>Enviado</b></td><td>Tiempo de Unix en segundos en el que se envió el mensaje</td></tr></tbody>
Campo |
---|
Produce hasta que la suscripción se registre correctamente y devuelva un objeto de conexión.
Para darse de baja, llame a Disconnect() en el objeto devuelto.Una vez llamado, el retorno de llamada nunca debe invocarse.Matar el script que contiene las conexiones también hace que la conexión subyacente se desususcríba.
Vea también MessagingService:PublishAsync() que envía el mensaje proporcionado a todos los suscriptores del tema, lo que hace que se invoquen sus llamadas registradas.
Parámetros
Determina dónde escuchar mensajes.
Función que se invoca cada vez que se recibe un mensaje.
Devuelve
Conexión que se puede utilizar para darse de baja del tema.
Muestras de código
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)