MessagingService

Mostrar obsoleto

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

No creable
Servicio
No replicado

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

Propiedades

Métodos

PublishAsync

()
Proporciona

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

topic: string

Determina dónde se envía el mensaje.

Valor predeterminado: ""
message: Variant

Los datos que se incluyen en el mensaje.

Valor predeterminado: ""

Devuelve

()

SubscribeAsync

Proporciona

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

topic: string

Determina dónde escuchar mensajes.

Valor predeterminado: ""
callback: function

Función que se invoca cada vez que se recibe un mensaje.

Valor predeterminado: ""

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.

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)

Eventos