【问题标题】:ASP.NET C# SignalR Stream to ClientASP.NET C# SignalR 流到客户端
【发布时间】:2011-11-16 14:31:11
【问题描述】:

我有几个 SignalR 基本演示在本地工作(聊天等),我知道推送到服务器然后将其广播到所有连接的客户端。

我的问题是如何利用 SignalR 将数据“流式传输”到客户端。例如,在 NodeJS/Socket.IO 中看到使用 Twitter 流 API 的示例。

是否有任何 SignalR 流式传输示例?这可能如何工作?

【问题讨论】:

    标签: c# asp.net stream signalr


    【解决方案1】:

    查看 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>
    

    【讨论】:

    • 如果您向所有客户端广播,这没问题。但是,如果您想将后台工作的结果推送给特定客户怎么办?这是我目前的情况......谢谢。
    • 将连接 ID 列表保存在某处并将其发送给特定客户端。
    • 除此方案外,如何从连接的客户端流向集线器?
    【解决方案2】:

    为什么不直接使用 SignalR 告诉客户端以老式方式通过 HTTP 开始下载?还是您在 .NET 方面以不同的方式使用 Stream

    如果您只是指广播外部事件,没有什么可以说明其中一个客户端不能是发送有趣数据事件以进行中继的其他服务。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多