Eche un vistazo a las muestras en el proyecto SignalR.Samples. Hay una muestra de transmisión allí. conexión del lado
Servidor:
namespace SignalR.Samples.Streaming
{
public class Streaming : PersistentConnection
{
}
}
El código que genera el flujo de
ThreadPool.QueueUserWorkItem(_ =>
{
var connection = Connection.GetConnection<Streaming.Streaming>();
while (true)
{
connection.Broadcast(DateTime.Now.ToString());
Thread.Sleep(2000);
}
});
Código del lado del cliente
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<script src="../Scripts/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="../Scripts/jquery.signalR.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var connection = $.connection('Streaming.ashx');
connection.received(function (data) {
$('#messages').append('<li>' + data + '</li>');
});
connection.start();
});
</script>
</head>
<body>
<ul id="messages">
</ul>
</body>
</html>
Esto está bien si usted está transmitiendo a todos los clientes. Pero, ¿y si quisieras presionar a clientes específicos como resultado de un trabajo de fondo? Esa es mi situación actual ... Gracias. –
Mantenga una lista de identificadores de conexión almacenados en algún lugar y envíelos a clientes específicos. – davidfowl