Señalización — iOS (Swift)
Utiliza la API de señalización de OpenTok para enviar texto y datos entre los clientes conectados a una sesión de OpenTok.
Para obtener información conceptual sobre la API de señalización de OpenTok, consulta el Resumen sobre la señalización guía del desarrollador.
Este tema incluye las siguientes secciones:
- Enviar una señal a un cliente concreto en una sesión
- Envío de una señal a todos los clientes de una sesión
- Recepción de señales en una sesión
- Evitar que se envíen señales durante la reconexión automática
Enviar una señal a un cliente concreto en una sesión
Para enviar una señal a un cliente concreto en una sesión, llama a la función OTSession signal(withType:string:connection:error:) del objeto Session:
var error: OTError?
session.signal(withType: type, string: "hello", connection: connection, error: &error)
if error {
print("signal error \(error)")
} else {
print("signal sent)
}
El type El parámetro es un valor de cadena que los clientes pueden utilizar para filtrar cuando recepción de señales. Establece este valor en una cadena vacía si no necesitas especificar un tipo.
El string El parámetro es la carga útil de datos (una cadena) que se envía junto con el mensaje. El límite de tamaño de los datos es de 8 KB.
El connection El parámetro es un OTConnection objeto correspondiente a un cliente conectado a la sesión a la que deseas enviar la señal. Las referencias a los objetos OTConnection se obtienen en el OTSessionDelegate session(_:connectionCreated:) mensaje.
El error El parámetro «error» se establece en un objeto OTError cuando falla la llamada al método. En caso de éxito, el parámetro «error» se establece en nil.
Envío de una señal a todos los clientes de una sesión
Para enviar una señal a clientes concretos de una sesión, llama a la función OTSession signal(withType:string:connection:error:) método del objeto OTSession:
var error: OTError?
session.signal(withType: type, string: "hello", connection: nil, error: &error)
if error {
print("signal error \(error)")
} else {
print("signal sent)
}
El type El parámetro es un valor de cadena que los clientes pueden utilizar para filtrar cuando recepción de señales. Establece este valor en una cadena vacía si no necesitas especificar un tipo.
El string El parámetro es la carga útil de datos (una cadena) que se envía junto con el mensaje. El límite de tamaño de los datos es de 8 KB.
El error El parámetro «error» se establece en un objeto OTError cuando falla la llamada al método. En caso de éxito, el parámetro «error» se establece en nil.
Recepción de señales en una sesión
Cuando se envía una señal durante una sesión, el OTSessionDelegate session(_:receivedSignalType:from:with:) Se envía el mensaje. El primer parámetro se establece como la cadena que indica el tipo de la señal. El segundo parámetro identifica al remitente de la señal. El tercer parámetro es la cadena de datos de la señal.
Ten en cuenta que puedes utilizar un Llamada a la API REST para enviar una señal desde tu servidor, en lugar de desde un cliente conectado a la sesión. En este caso, el fromConnection se establece en null.
Evitar que se envíen señales durante la reconexión automática
Los clientes intentarán volver a conectarse automáticamente a una sesión de la que se hayan desconectado de forma inesperada (por ejemplo, debido a una interrupción de la conexión de red). De forma predeterminada, cualquier señal que envíes mientras el cliente esté temporalmente desconectado de una sesión se pone en cola y se envía cuando (y si) se vuelve a conectar con éxito. Puedes utilizar la OTSession signal(withType:string:connection:retryAfterReconnect:error:) y establecer el método retryAfterReconnect parámetro a NO para evitar que las señales se acumulen en la cola mientras el cliente está desconectado. Para obtener más información, consulta Reconexión automática.