MessagingService

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Serviço
Não replicado

Serviço de Mensageria permite que os servidores da mesma experiência se comuniquem entre si em tempo real (menos de 1 segundo) usando tópicos.Tópicos são strings definidas pelo desenvolvedor (1–80 caracteres) que os servidores usam para enviar e receber mensagens.

A entrega é o melhor esforço e não é garantida. Certifique-se de arquitetar sua experiência para que falhas de entrega não sejam críticas.

Mensageria entre servidores explora como se comunicar entre servidores com mais detalhe.

Se você quiser publicar mensagens ad-hoc em servidores de jogos ao vivo, você pode usar as Abra APIs de Nuvem.

Limitações

Observe que esses limites estão sujeitos a alterações.


<th>Máximo</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>Tamanho da mensagem</b>
</td>
<td>
1kB
</td>
</tr>
<tr>
<td>
<b>Mensagens enviadas por servidor de jogo</b>
</td>
<td>
600 + 240\* (numbero de jogadores neste servidor de jogos) por minuto
</td>
</tr>
<tr>
<td>
<b>Mensagens recebidas por tópico</b>
</td>
<td>
(40 + 80 \* número de servidores) por minuto
</td>
</tr>
<tr>
<td>
<b>Mensagens recebidas para todo o jogo</b>
</td>
<td>
(400 + 200 \* número de servidores) por minuto
</td>
</tr>
<tr>
<td>
<b>Subscrições permitidas por servidor de jogo</b>
</td>
<td>
20 + 8\* (numbero de jogadores neste servidor de jogos)
</td>
</tr>
<tr>
<td>
<b>Inscreva solicitações por servidor de jogo</b>
</td>
<td>
240 pedidos por minuto
</td>
</tr>
</tbody>
Limite

Resumo

Métodos

Propriedades

Métodos

PublishAsync

()
Rendimentos

Essa função envia a mensagem fornecida a todos os inscritos no tópico, ativando seus registros de chamada registrados.

Produz até que a mensagem seja recebida pelo backend.

Parâmetros

topic: string

Determina onde a mensagem é sentença / frase

Valor Padrão: ""
message: Variant

Os dados a incluir na mensagem.

Valor Padrão: ""

Devolução

()

SubscribeAsync

Rendimentos

Essa função registra um retorno de chamada para começar a ouvir o tópico dado.O retorno de chamada é invocado quando um tópico recebe uma mensagem.Pode ser chamado várias vezes para o mesmo tópico.

Retorno de Chamada

O retorno de chamada é invocado com um único argumento, uma tabela com as seguintes entradas:


<th>Sumário</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<b>Dados</b>
</td>
<td>
Desenvolvedor forneceu payload
</td>
</tr>
<tr>
<td>
<b>Enviado</b>
</td>
<td>
Tempo de Unix em segundos em que a mensagem foi enviada
</td>
</tr>
</tbody>
Campo

Ele retorna até que a assinatura seja devidamente registrada e retorne um Objetode conexão.

Para se desinscrever, chame Disconnect() no Objetoretornado.Uma vez chamado, o retorno de chamada nunca deve ser invocado.Matar o script que contém as conexões também faz com que a conexão subjacente seja desativada.

Veja também MessagingService:PublishAsync() que envia a mensagem fornecida a todos os subscritores do tópico, ativando seus registros de chamada registrados para serem invocados.

Parâmetros

topic: string

Determina onde ouvir mensagens.

Valor Padrão: ""
callback: function

Função a ser invocada sempre que uma mensagem for recebida.

Valor Padrão: ""

Devolução

Conexão que pode ser usada para se desinscrever do tópico.

Amostras 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