ASP.NET C # SignalR поток для клиента - PullRequest
6 голосов
/ 16 ноября 2011

У меня есть пара базовых демонстраций SignalR, работающих локально (чат и т. Д.), И я понимаю, что отправляю на сервер, а затем транслирую его всем подключенным клиентам.

Мой вопрос: как мне использовать SignalR?«Поток» данных для клиента.Например, видели примеры в NodeJS / Socket.IO, использующие потоковый API Twitters.

Существуют ли примеры потоковой передачи SignalR?Как это может работать?

Ответы [ 2 ]

11 голосов
/ 17 ноября 2011

Посмотрите образцы в проекте SignalR.Samples. Там есть потоковый образец.

Соединение на стороне сервера:

namespace SignalR.Samples.Streaming
{
    public class Streaming : PersistentConnection
    {
    }
}

Код, генерирующий поток

ThreadPool.QueueUserWorkItem(_ =>
{
    var connection = Connection.GetConnection<Streaming.Streaming>();
    while (true)
    {
        connection.Broadcast(DateTime.Now.ToString());
        Thread.Sleep(2000);
    }
});

Код на стороне клиента

<!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>
1 голос
/ 16 ноября 2011

Почему бы просто не использовать SignalR, чтобы сказать клиенту начать загрузку через HTTP по старинке?Или вы используете Stream по-другому в терминах .NET?

Если вы просто имеете в виду трансляцию внешних событий, то нет ничего, что говорило бы, что один из клиентов не может быть какой-то другой службой, которая являетсяотправка интересных событий на ретранслятор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...