2012-06-21 15 views
14

He estado leyendo una cantidad decente con respecto a hubs y grupos de SignalR. En particular, me he dado cuenta de que no puede obtener un recuento de las conexiones en un grupo en particular.SignalR groups - ¿filtrado manejado en el cliente o servidor?

¿El filtrado de grupos se maneja en el cliente o servidor? Si el servidor, ¿por qué no puede SignalR exponer un conteo? Si está en el cliente, ¿hay alguna manera de enviar mensajes solo a clientes particulares?

Respuesta

31

Cuando envía un mensaje a un grupo particular de conexión específica, el filtrado ocurre en el servidor (no hay filtrado, solo se dirige a esa conexión o grupo).

SignalR se basa en pub sub, por lo que no hay una lista de conexiones per se. Si desea realizar un seguimiento de una lista de conexiones, debe manejar la conexión y desconectar los eventos y conservarlos en la memoria o en algún almacenamiento persistente.

La razón por la que no le damos una lista de conexiones es porque cualquier estado que almacenamos perjudica la ampliación de los nodos. Si le dimos una lista de conexiones, es un pozo de falla, porque si agrega otro nodo web a su granja, de repente tiene que sincronizar el estado a través de él. Le permitimos abordar conexiones individuales o grupos a través de su identificador y eso nos permite usar el bus de mensajes para publicar a todos los suscriptores de ese identificador.

+3

Entonces, si tengo 10.000 clientes y los envío a un grupo que solo tiene 5, los otros 9.995 no recibirán el mensaje y luego lo ignorarán. Para evitar eso, ¿no es necesario que el servidor sepa quién está en qué grupo? –

+10

* Entonces, si tengo 10.000 clientes y los envío a un grupo que solo tiene 5, los otros 9.995 no recibirán el mensaje y luego lo ignorarán * * Correcto, no lo recibirán. * Con el fin de evitar que no sería el servidor necesita saber quién está en qué grupo? * No, estado de conexión (como grupos) es disparado redonda con la propia conexión. – davidfowl

+0

Si el cliente me da membresía grupal, ¿es segura e inmodificable? (Por ejemplo, Grupo 'Clasificado' vs' Secreto') – LamonteCristo

Cuestiones relacionadas