¿Es posible enviar datos (cada segundo) de un servidor a un cliente dependiendo de la ID de usuario en SignalR (los datos difieren de un usuario a otro)?

¡¡¡Sí!!!

Puede usar ConnectionId para identificar al cliente.

Cuando se conecta un nuevo cliente, almacene ConnectionId algún lugar para que pueda usarlo más tarde para identificar al cliente.

clase pública MyHub: Hub
{
Tarea de anulación pública OnConnected ()
{
var connectionId = Context.ConnectionId;
// almacenar id de conexión en alguna parte
return base.OnConnected ();
}
}

Para enviar datos al cliente, identifíquelo por ConnectionId :

public void SendNewData (string connectionId, datos del objeto)
{
var Context = GlobalHost.ConnectionManager.GetHubContext ();
Context.Clients.Client (connectionId) .send (datos);
}

Si necesita identificar clientes por algún otro ID, entonces debe almacenar la relación entre su ID y ConnectionId .

Gracias por A2A, espero que esto te ayude Anusha !!!

Sí, por supuesto.

Tiene una identificación de cliente para cada usuario conectado a su servidor utilizando el señalizador.

puedes enviar esta identificación al servidor usando el código del lado del cliente

$ .connection.hub.id

y en el servidor puedes escribir alguna función como a continuación

public void SendUserSpecificData (nombre de cadena, mensaje de cadena, ID de conexión de cadena)
{
Clients.Client (connectionId) .broadcastMessage (nombre, mensaje);
}

de esta manera, los datos se enviarán a usuarios específicos solo en lugar de transmitirlos a todos los clientes conectados.

Entonces allí estaba …

… usando SignalR en un proyecto y pensé exactamente lo mismo. 🙂

Entonces decidí escribir una publicación al respecto.

Cómo crear una transmisión de Twitter en tiempo real con SignalR

Si bien no es por usuario, estoy bastante seguro de que podría modificarlo con un mínimo esfuerzo para incluir feeds específicos del usuario.

Espero que esto ayude.