View a markdown version of this page

Inicie sessões de streaming com o Amazon GameLift Streams - GameLift Streams da Amazon

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á.

Inicie sessões de streaming com o Amazon GameLift Streams

Esta seção aborda as sessões de transmissão, a instância real de uma transmissão em que um usuário final ou jogador pode interagir com seu aplicativo ou jogar seu jogo. Você aprenderá como testar sua própria sessão de stream e entender o ciclo de vida da sessão de stream.

Para iniciar sessões de stream para usuários finais, você pode integrar o Amazon GameLift Streams ao seu próprio serviço e aplicativo cliente; para obter mais informações, consulteServiço de back-end e cliente web do Amazon GameLift Streams. Você também pode criar uma URL de stream, que inicia uma sessão de stream em um navegador da Web compatível sem exigir que o usuário final tenha AWS credenciais ou uma integração com o cliente; para obter mais informações, consulteCompartilhe sessões de stream com URLs de stream.

Sobre as sessões de transmissão

Os pré-requisitos para iniciar uma sessão de stream são um aplicativo no status Pronto, um grupo de stream que tenha capacidade disponível no local em que você deseja transmitir e o aplicativo replicado para o local em que você deseja transmitir. Uma sessão de stream é executada em um dos recursos computacionais que um grupo de stream alocou. Ao iniciar um stream, você deve especificar um grupo de streams e um aplicativo para transmitir usando seus valores de ARN ou ID.

Ao iniciar uma sessão de stream com sucesso, você recebe um identificador exclusivo para essa sessão de stream. Em seguida, você usa esse ID para conectar a sessão de stream a um usuário final. Para obter mais informações, consulte StartStreamSession a Referência de API do Amazon GameLift Streams.

Opcionalmente, você pode fornecer um ARN de função do IAM ao iniciar uma sessão de stream. Se fornecido, o Amazon GameLift Streams assume a função e seu aplicativo recebe automaticamente as credenciais da AWS. Não é necessário alterar o código da aplicação. Para obter mais informações, consulte Forneça credenciais da AWS à aplicação de streaming.

Testando um stream no console

A maneira mais direta de testar como seu aplicativo é transmitido é por meio do console do Amazon GameLift Streams. Quando você inicia um stream, o Amazon GameLift Streams usa um dos recursos computacionais que seu grupo de streams aloca. Portanto, você deve ter capacidade disponível em seu grupo de streams.

Para testar seu stream no console do Amazon GameLift Streams
  1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon GameLift Streams.

  2. Você pode testar um stream de várias maneiras. Comece na página Grupos de transmissão ou na página de teste da transmissão e siga estas etapas:

    1. Selecione um grupo de streams que você deseja usar para transmitir.

    2. Se você estiver começando na página Grupos de transmissão, escolha Testar transmissão. Se você estiver começando na página Testar stream, selecione Escolher. Isso abre a página de configuração de fluxo de teste para o grupo de fluxo selecionado.

    3. Em Aplicativos vinculados, selecione um aplicativo.

    4. Em Local, escolha um local com capacidade disponível.

    5. (Opcional) Nas configurações do programa, insira argumentos de linha de comando ou variáveis de ambiente para passar para o aplicativo quando ele for iniciado.

    6. Confirme sua seleção e escolha Testar transmissão.

  3. Depois que seu stream for carregado, você poderá realizar as seguintes ações em seu stream:

    1. Para conectar entradas, como mouse, teclado e gamepad (exceto microfones, que não são suportados no fluxo de teste), escolha Anexar entrada. Você conecta automaticamente o mouse ao mover o cursor para a janela do stream.

    2. Para que os arquivos criados durante a sessão de streaming sejam exportados para um bucket do Amazon S3 no final da sessão, escolha Exportar arquivos e especifique os detalhes do bucket. Os arquivos exportados podem ser encontrados na página Sessões.

    3. Para ver a transmissão em tela cheia, escolha Tela cheia. Pressione Escape para reverter essa ação.

  4. Para finalizar a transmissão, escolha Encerrar sessão. Quando o fluxo se desconecta, a capacidade do fluxo fica disponível para iniciar outro fluxo.

nota

O recurso de stream de teste no console do Amazon GameLift Streams não é compatível com microfones.

Ciclo de vida da sessão de streaming

Ao trabalhar com sessões de stream no Amazon GameLift Streams, esse diagrama pode ajudar você a entender os diferentes estados para os quais uma sessão de stream passa ao longo de seu ciclo de vida.

  • StartStreamSessioncria uma nova sessão de stream, que começa no ACTIVATING estado. Quando o Amazon GameLift Streams encontra os recursos disponíveis para hospedar o stream, a sessão do stream faz a transição para o. ACTIVE Quando um cliente se conecta ao stream ativo, a sessão do stream faz a transição para o. CONNECTED

  • Quando um cliente se desconecta de um stream, a sessão do stream passa para PENDING_CLIENT_RECONNECTION o estado. CreateStreamSessionConnectionfaz a transição da sessão de stream para RECONNECTING e iniciará o cliente para se reconectar ao stream ou criará uma nova sessão de stream. Quando uma sessão de stream está pronta para o cliente se reconectar, ela faz a transição para o. ACTIVE Quando o cliente se reconecta, ele volta para o. CONNECTED Se um cliente ficar desconectado por mais deConnectionTimeoutSeconds, a sessão de stream será encerrada.

  • Quando um cliente não se conecta a uma sessão de stream em ACTIVE ou PENDING_CLIENT_RECONNECTION estado dentro do período de tempo especificado porConnectionTimeoutSeconds, ele faz a transição para o. TERMINATED

  • TerminateStreamSessioninicia o encerramento do fluxo e a sessão do fluxo faz a transição para TERMINATING o estado. Quando a sessão de stream termina com êxito, ela faz a transição para o. TERMINATED

  • Uma sessão de stream em qualquer estado, excetoTERMINATED, pode fazer a transição para ERROR o. Quando uma chamada de API retorna ERROR como um valor de Status, verifique o valor de StatusReason para obter uma breve descrição da causa do erro. Você também pode ligar GetStreamSession para verificar esses valores.

Esse diagrama mostra os diferentes estados para os quais uma sessão de stream passa ao longo de seu ciclo de vida.

Valores de tempo limite que afetam as sessões de stream

As sessões de stream são regidas por vários valores de tempo limite que controlam diferentes aspectos do ciclo de vida da sessão. Em ordem cronológica aproximada de quando você normalmente os encontra durante o ciclo de vida da sessão de stream, eles incluem o seguinte:

Tempo limite de colocação

Limite de tempo para o Amazon GameLift Streams encontrar recursos computacionais para hospedar uma sessão de stream usando a capacidade disponível. O tempo limite de veiculação varia de acordo com o tipo de capacidade usada para atender à sua solicitação de transmissão:

  • Always-on capacidade: 75 segundos

  • On-demand capacidade:

    • Linux/Proton tempos de execução: 90 segundos

    • Tempo de execução do Windows: 10 minutos

  • Comportamento: Se o Amazon GameLift Streams não conseguir identificar os recursos disponíveis nesse período, a sessão do stream Status mudará para ERROR com um StatusReason deplacementTimeout.

Tempo limite da conexão

Período de tempo em que o Amazon GameLift Streams espera que um cliente se conecte ou se reconecte a uma sessão de stream.

  • Parâmetro: ConnectionTimeoutSeconds in StartStreamSession

  • Intervalo: 1 - 3600 segundos (1 hora)

  • Padrão: 120 segundos (2 minutos)

  • Comportamento: o cronômetro começa quando a sessão de transmissão atinge ACTIVE nosso PENDING_CLIENT_RECONNECTION status. Se nenhum cliente se conectar antes do tempo limite, a sessão fará a Status transição para o. TERMINATED

Tempo limite de duração da sessão

Duração máxima: o Amazon GameLift Streams mantém uma sessão de stream aberta.

  • Parâmetro: SessionLengthSeconds in StartStreamSession

  • Intervalo: 1 - 86400 segundos (24 horas)

  • Padrão: 43200 segundos (12 horas)

  • Comportamento: encerra a sessão de stream independentemente de qualquer conexão de cliente existente quando o limite de tempo é atingido.

Encerrando uma sessão de stream

Se precisar forçar o encerramento de uma sessão de stream, você tem as seguintes opções:

  • Use a TerminateStreamSession API: Para usar TerminateStreamSession, você precisará do ID do grupo de stream e do ID da sessão de stream. Você pode usar ListStreamSessions ou ListStreamSessionsByAccount com o --status CONNECTED parâmetro para obter uma lista de sessões de stream que têm um cliente conectado.

  • Remover o local da sessão de seu grupo de stream: Remover o local do grupo de stream em que a sessão está sendo transmitida encerrará todas as sessões de stream ativas nesse local. Você pode remover um local em um grupo de streams do console ou usando a RemoveStreamGroupLocations API.

  • Excluir o grupo de stream da sessão: a exclusão de um grupo de stream encerrará todas as sessões de stream ativas em todos os locais do grupo de stream. Você pode excluir um grupo de streams do console ou usando a DeleteStreamGroup API. Use com cuidado, pois você encerrará abruptamente as conexões do cliente.

Reconectando-se a uma sessão de stream

Se um cliente for desconectado de uma sessão de stream sem encerrar a sessão, ele poderá se reconectar à sessão dentro do tempo especificado ConnectionTimeoutSeconds quando a sessão de stream foi iniciada. Para se reconectar a uma sessão, você precisa do ID da sessão de stream. Para obter detalhes, consulte CreateStreamSessionConnection a Referência de API do Amazon GameLift Streams. Você pode ver um exemplo de reconexão a uma sessão de stream no React Starter Sample.

A reconexão não está disponível para sessões de stream que são iniciadas com a ativação de um URL de stream. Como não há reconexão, abrir o URL do stream novamente inicia uma sessão completamente nova e consome outro uso dela. UsageLimit Para obter mais informações, consulte Compartilhe sessões de stream com URLs de stream.