Interface de servidores em tempo real - Amazon GameLift

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Interface de servidores em tempo real

Quando um script em tempo real é inicializado, uma interface é retornada para o servidor em tempo real. Este tópico descreve as propriedades e métodos disponíveis por meio da interface. Saiba mais sobre como gravar scripts em tempo real e visualize um script detalhado de exemplo em Criar um script em tempo real.

A interface em tempo real fornece acesso aos seguintes objetos:

  • session

  • player

  • gameMessage

  • configuration

Objeto de sessão em tempo real

Use esses métodos para acessar informações relacionadas ao servidor e para executar ações relacionadas ao servidor.

getPlayers()

Recupera uma lista de IDs pares para jogadores que estão conectados no momento à sessão de jogo. Retorna uma matriz de objetos de jogador.

Sintaxe

rtSession.getPlayers()

broadcastGroupMembershipUpdate()

Aciona a entrega de uma lista atualizada de associações do grupo ao grupo de jogadores. Especifique qual associação transmitir (groupIdToBroadcast) e o grupo para receber a atualização (targetGroupId). Os IDs de grupo devem ser um número inteiro positivo ou “-1” para indicar todos os grupos. Consulte Exemplo de script de servidores em tempo real para ver um exemplo de IDs de grupo definidos pelo usuário.

Sintaxe

rtSession.broadcastGroupMembershipUpdate(groupIdToBroadcast, targetGroupId)

getServerId()

Recupera o identificador do ID par exclusivo do servidor, que é usado para rotear mensagens para o servidor.

Sintaxe

rtSession.getServerId()

getAllPlayersGroupId()

Recupera o ID de grupo para o grupo padrão que contém todos os jogadores conectados no momento à sessão de jogo.

Sintaxe

rtSession.getAllPlayersGroupId()

processEnding()

Aciona o servidor em tempo real para encerrar o servidor de jogos. Essa função deve ser chamada no script em tempo real para sair corretamente de uma sessão de jogo.

Sintaxe

rtSession.processEnding()

getGameSessionId()

Recupera o ID exclusivo da sessão do jogo em execução no momento.

Sintaxe

rtSession.getGameSessionId()

getLogger()

Recupera a interface para o registro em log. Use essa opção para registrar instruções de log que serão capturadas em seus logs de sessão de jogo. O registrador em log é compatível com o uso de instruções “info”, “warn” e “error”. Por exemplo: logger.info("<string>").

Sintaxe

rtSession.getLogger()

sendMessage()

Envia uma mensagem, criada usando newTextGameMessage ou newBinaryGameMessage, do servidor em tempo real para um jogador destinatário usando o canal UDP. Identifique o destinatário usando o ID par do jogador.

Sintaxe

rtSession.sendMessage(gameMessage, targetPlayer)

sendGroupMessage()

Envia uma mensagem, criada usando newTextGameMessage ou newBinaryGameMessage, do servidor em tempo real a todos os jogadores em um grupo de jogadores usando o canal UDP. Os IDs de grupo devem ser um número inteiro positivo ou “-1” para indicar todos os grupos. Consulte Exemplo de script de servidores em tempo real para ver um exemplo de IDs de grupo definidos pelo usuário.

Sintaxe

rtSession.sendGroupMessage(gameMessage, targetGroup)

sendReliableMessage()

Envia uma mensagem, criada usando newTextGameMessage ou newBinaryGameMessage, do servidor em tempo real para um jogador destinatário usando o canal TCP. Identifique o destinatário usando o ID par do jogador.

Sintaxe

rtSession.sendReliableMessage(gameMessage, targetPlayer)

sendReliableGroupMessage()

Envia uma mensagem, criada usando newTextGameMessage ou newBinaryGameMessage, do servidor em tempo real para todos os jogadores em um grupo de jogadores usando o canal TCP. Os IDs de grupo que devem ser um número inteiro positivo ou “-1” para indicar todos os grupos. Consulte Exemplo de script de servidores em tempo real para ver um exemplo de IDs de grupo definidos pelo usuário.

Sintaxe

rtSession.sendReliableGroupMessage(gameMessage, targetGroup)

newTextGameMessage()

Cria uma nova mensagem que contém texto, a ser enviada do servidor aos jogadores destinatários usando as funções SendMessage. O formato da mensagem é semelhante ao formato usado no SDK do cliente Realtime (consulte RTMessage). Informa um objeto gameMessage.

Sintaxe

rtSession.newTextGameMessage(opcode, sender, payload)

newBinaryGameMessage()

Cria uma nova mensagem que contém dados binários a ser enviada do servidor aos jogadores destinatários usando as funções SendMessage. O formato da mensagem é semelhante ao formato usado no SDK do cliente Realtime (consulte RTMessage). Informa um objeto gameMessage.

Sintaxe

rtSession.newBinaryGameMessage(opcode, sender, binaryPayload)

Objeto do jogador

Acessar informações relacionadas ao jogador.

player.peerId

ID exclusivo que é atribuído a um cliente do jogo quando ele se conecta ao servidor em tempo real e ingressa na sessão do jogo.

player.playerSessionId

O ID da sessão do jogador que foi referenciado pelo cliente do jogo quando conectou-se ao servidor em tempo real e ingressou na sessão do jogo.

Objeto de mensagem de jogo

Use esses métodos para acessar as mensagens que são recebidas pelo servidor em tempo real. As mensagens recebidas de clientes de jogos têm a estrutura RTMessage.

getPayloadAsText()

Obtém a carga útil da mensagem do jogo como texto.

Sintaxe

gameMessage.getPayloadAsText()

gameMessage.opcode

Código de operação contido em uma mensagem.

gameMessage.payload

Carga contida em uma mensagem. Pode ser texto ou binário.

gameMessage.sender

ID par do cliente do jogo que enviou uma mensagem.

gameMessage.reliable

Booliano indica se a mensagem foi enviada por meio de TCP (verdadeiro) ou UDP (falso).

Objeto de configuração

O objeto de configuração pode ser usado para substituir as configurações padrão.

configuration.maxPlayers

O número máximo de conexões cliente/servidor que podem ser aceitas pelo RealTimeServers.

O padrão é 32.

configuration.pingIntervalTime

Intervalo de tempo em milissegundos em que o servidor tentará enviar um ping a todos os clientes conectados para verificar se as conexões estão íntegras.

O padrão é 3000 ms.