A MessagingService classe é um serviço. Esse serviço pode ser usado para se comunicar entre servidores em um universo, assinando um tópico por meio do método SubscribeAsync. Todos os servidores inscritos em um tópico serão notificados quando o tópico enviar dados por meio do método PublishAsync.
Conteúdo
- 1 Limitações
- 2 Exemplo de Código
- Funções 3
- 3.1 vazio PublishAsync(tópico de string, mensagem variante) [Yields]
- 3.2 RBXScriptConnection SubscreverAsync(tópico de string, retorno de chamada de função) [Yields]
- 4 links externos
Limitações
Embora este seja um serviço muito poderoso, ele foi criticado por suas limitações no início, havia uma crença de um máximo de 10,000 solicitações por universo, [1] declarado por Ozzypig, um desenvolvedor top, preocupado que isso fosse muito pouco. Desde então, foi mencionado por Seranok, um funcionário da Roblox, que se trata de Assinaturas por tópico por universo [2].
Limitação | Máxima |
---|---|
Tamanho da mensagem | 1kB |
Mensagens por servidor de jogo por minuto | 150 + 60 * número de jogadores |
Assinaturas por servidor de jogo | 5 + 2 * número de jogadores |
Assinaturas por tópico por universo de jogo | 10,000 |
Exemplo de Código
Vamos criar um Script utilização MessagingService que faz o seguinte:
Sempre que um jogador bate-papo, o código a seguir enviaria essa mensagem para todos os servidores, permitindo a comunicação entre servidores. Este código compararia o Propriedade JobId de DataModel para garantir que as mensagens não sejam enviadas duas vezes no mesmo servidor.
local MessagingService = jogo: GetService ("MessagingService") local Players = jogo: GetService ("Players") Players.PlayerAdded: Connect (function (player) player.Chatted: Connect (function (msg) MessagingService: PublishAsync ("ChatMessage", {Player = player.Name, Message = msg, JobId = game.JobId}) end end) MessagingService: SubscribeAsync ("ChatMessage", function (data) if data.JobId == game.JobId then - The JobId's match, don envie a mensagem novamente. return end - data.Player é o nome de usuário do jogador que enviou a mensagem. - data.Message é a mensagem enviada. end)
Funções
anular PublishAsync(tópico de string, mensagem variante) [Yields] |
Envia dados para todos os retornos de chamada inscritos em um determinado tópico. |
RBXScriptConnection SubscreverAsync(tópico de string, retorno de chamada de função) [Yields] |
Faz com que o retorno de chamada fornecido seja executado sempre que uma mensagem for recebida de PublishAsync com o tópico correspondente. |
Links externos
- MessagingService no Roblox Developer Hub
- MessagingService na referência da API Roblox
- ↑ https://devforum.roblox.com/t/messagingservice-beta-release/254462/12
- ↑ https://devforum.roblox.com/t/messagingservice-release/254462/70