Qué es el ConnectionId en SignalR y para qué nos sirve?

Siguiendo con la serie de post’s que estamos viendo asociada a SignalR nos llega el momento de analizar cómo hacer para poder diferenciar a qué cliente enviarle una notificación. En el ejemplo del post anterior lo que vimos es el uso más básico que implica el envío de las notificaciones a todos los clientes:

Sin embargo hay algo allí que debemos explicar: cómo maneja SignalR la registración e información de cada cliente? La respuesta es el “ConnectionId”.

El ConnectionId es el identificador que SignalR genera para cada cliente en particular, lo cual nos permite identificar a un determinado cliente de todos los que están usando nuestra aplicación. Este valor es generado cuando se realiza una primer invocación al Hub, quedando luego disponible para su utilización.

A su vez, como nuestras aplicaciones real-time usando SignalR constan tanto con lógica del lado del cliente como del servidor, es necesario poder acceder a dicho valor desde ambas partes. Es así que desde el lado del servidor (Hub) lo accederemos de la siguiente forma:

Context.ConnectionId

Mientras que del lado del cliente podremos acceder al valor como se muestra a continuación:

$.connection.hub.id

 

Lo que hay que recordar es que como mencionamos antes, el valor del ConnectionId se generará al realizar la primera invocación al servidor, motivo por el cual no debemos asumir en el lado del cliente que el mismo siempre tendrá valor (algo que sí sucede en el lado del servidor).

Ahora bien, cual es el uso que le damos a este valor? Porque según lo que vimos anteriormente SignalR se encarga de saber quienes son todos los clientes conectados. Lo que aquí pasa es que hay otras formas de enviar notificaciones que no sea a todos, sino a un grupo o cliente particular. Para todas estas operatorias más avanzadas que ofrece SignalR y que todavía no hemos visto (pero lo haremos pronto) deberemos hacer uso de este valor.

Este será el nivel más atómico en el cual podremos identificar a un cliente en particular. La relación entre dicho valor y la conexión al cliente en si queda en un nivel de abstracción mucho más bajo del funcionamiento de SignalR.

Gracias por leer!!

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s