MessagingService
*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.
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
Invoca o retorno fornecido sempre que uma mensagem for enviada ao tópico.
Começa a ouvir o tópico dado.
Propriedades
Métodos
PublishAsync
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
Determina onde a mensagem é sentença / frase
Os dados a incluir na mensagem.
Devolução
SubscribeAsync
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
Determina onde ouvir mensagens.
Função a ser invocada sempre que uma mensagem for recebida.
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.
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)