Participar de uma sessão — Android
Usando um ID da sessão e token, você pode se conectar à sessão do OpenTok usando o SDK do OpenTok para Android.
Este tópico inclui as seguintes seções:
- Inicializando um objeto Session
- Conectando-se a uma sessão
- Desconectando-se de uma sessão
- Como detectar quando você se desconectou de uma sessão
- Reconexão automática
- Detectar quando outros clientes se conectaram e se desconectaram
Para obter informações sobre como criar um ID de sessão e um token de autenticação, consulte Criação de sessão e Criação de tokens.
Inicializando um objeto Session
Antes de se conectar a uma sessão, instancie um objeto Session.Builder chamando o método Session.Builder() construtor, passando o contexto apropriado do aplicativo Android, sua chave da API do OpenTok e um ID de sessão. Em seguida, chame o build() método do objeto Session.Builder para criar um objeto Session:
mSession = new Session.Builder(context, API_KEY, SESSION_ID)
.build();
Observe que chamar o Session.Builder.build() o método não criar uma sessão do OpenTok; isso cria um objeto Session, que representa a sessão do OpenTok. Certifique-se de manter uma referência ao objeto Session; caso contrário, ele poderá ser removido pela coleta de lixo, o que pode causar falhas e comportamentos inesperados. Você cria uma sessão do OpenTok usando as bibliotecas do OpenTok do lado do servidor. Consulte Criação de uma sessão do OpenTok.
Adicione um objeto ouvinte para eventos básicos relacionados à sessão chamando o setSessionListener(Session.SessionListener listener) método do objeto Session:
mSession.setSessionListener(this);
Implemente os métodos da interface `Session.SessionListener` no objeto que você especificar como objeto ouvinte de eventos. Esses métodos são chamados quando ocorrem eventos relacionados à sessão.
Conectando-se a uma sessão
Ligue para o Session.connect(token) método, passando um token válido:
mSession.connect(TOKEN);
O Session.SessionListener.onConnected(Session session) O método é chamado quando o cliente se conecta à sessão do OpenTok.
@Override
protected void onConnected(Session session)
// This client has connected to the session.
}
O Session.SessionListener.onError(Session session, OpentokError error) O método é chamado quando ocorre um erro na conexão. Consulte a documentação da enumeração OpentokException.ErrorCode para obter descrições dos valores da code propriedade do objeto de erro.
@Override
public void onError(Session session, OpentokError error) {
Log.i(LOGTAG, "Exception: " + error.getMessage());
}
Desconectando-se de uma sessão
Para se desconectar de uma sessão, ligue para o Session.disconnect() método.
mSession.disconnect();
Detectar quando a conexão foi interrompida
O Session.SessionListener.onDisconnected(Session session) O método é chamado quando o cliente se desconecta da sessão do OpenTok.
@Override
public void onDisconnected(session) {
// This client has disconnected to the session.
}
Se a conexão com a sessão for interrompida devido a um erro que ocorra após uma conexão bem-sucedida, o Session.SessionListener.onError(Session session, OpentokError error) O método é chamado antes do Session.SessionListener.onDisconnected(Session session) método. O objeto OpentokError passado para o Session.SessionListener.onError(Session session, OpentokError error) O método descreve o motivo do desligamento.
Reconexão automática
Os clientes tentarão se reconectar automaticamente a uma sessão quando se desconectarem inesperadamente (por exemplo, devido a uma queda na conectividade de rede). Você não precisa adicionar nenhum código para que os clientes se reconectem automaticamente, a menos que queira responder a eventos que ocorrem quando o cliente se desconecta e se reconecta. Para ver um código de exemplo que demonstra o uso desses eventos, consulte o opentok-reconexão repositório no GitHub.
Quando a conexão é interrompida e o cliente tenta se reconectar, o Session.ReconnectionListener.onReconnecting(Session session) método é chamado. Quando a conexão é restabelecida, o Session.ReconnectionListener.onReconnected(Session session) método é chamado. Se o cliente não conseguir restabelecer a conexão, ele se desconecta da sessão do OpenTok, e o Session.SessionListener.onDisconnected(Session session) o método é chamado.
Em resposta a esses eventos, seu aplicativo pode (opcionalmente) exibir notificações na interface do usuário indicando os estados de desconexão temporária, reconexão e desconexão:
// In the implementation of the Session.ReconnectionListener interface
@Override
public void onReconnecting(session) {
// Display a user interface notification.
}
public void onReconnected(session) {
// Adjust user interface.
}
// In the implementation of the Session.SessionListener interface
@Override
public void onDisconnected(session) {
// Adjust user interface.
}
Quando seu cliente se desconecta temporariamente de uma sessão, os métodos nas implementações da interface `SubscriberKit.StreamListener` nos clientes inscritos em um fluxo publicado por você são chamados quando o fluxo publicado é interrompido e quando (e se) ele for retomado automaticamente. Para obter mais informações, consulte o reconexão automática seção do guia do desenvolvedor intitulada “Inscrição em streams”.
Por padrão, quaisquer sinais que você enviar enquanto seu cliente estiver temporariamente desconectado de uma sessão são colocados em fila e enviados quando (e se) você se reconectar com sucesso. Você pode usar o Session.sendSignal(String type, String data, Connection connection, boolean retryAfterReconnect) método e definir o retryAfterReconnect parâmetro para false para evitar que os sinais fiquem em fila enquanto você estiver desconectado. Para obter mais informações, consulte Impedir que sinais sejam enviados durante a reconexão automática.
Detectar quando outros clientes se conectaram e se desconectaram
Quando você estiver conectado a uma sessão, o Session.ConnectionListener.onConnectionCreated(Session session, Connection connection) O método é chamado quando um novo cliente (que não seja o seu) se conecta à sessão.
O Session.ConnectionListener.onConnectionDestroyed(Session session, Connection connection) O método é chamado quando um cliente (que não seja o seu) sai da sessão. O objeto Connection passado para o método define a conexão que saiu da sessão.
Adicione um objeto ouvinte para esses eventos de conexão chamando a função setConnectionListener(Session.ConnectionListener listener) método do objeto Session:
mSession.setSessionListener(this);
@Override
public void onConnectionCreated(Session session, Connection connection)
{
// New client connected to the session
}
@Override
public void onConnectionDestroyed(Session session, Connection connection)
{
// A client disconnected from the session
}