4

我计划在客户端和服务器之间使用 signalR 进行一些实时通信。但是客户端不时需要向服务器发送大约 15MB 的大数据。

1)看起来 signalR 不适合发送大数据。他们是否在最近的版本中添加了对发送大数据的任何支持?

2)我可以在消息中发送的最大数据数组是多少?

3)拆分大数据并将其作为较小的块发送是否太慢?

4)什么是替代选项?有什么我可以研究的例子吗?

5) 我可以运行 WCF 服务来传输大数据以及 signalR 进行实时通信吗?

4

3 回答 3

8

通过 SignalR 发送将使用错误的工具来完成这项工作。在这种情况下,最好的办法是通过 SignalR 发送一条特定消息,该消息将 URL 作为参数传递。然后,您可以使用多种方法在客户端触发基于标准 HTTP GET 的下载来处理。

于 2012-11-17T02:03:39.387 回答
1

如果您真的非常需要使用 SignalR,您可以查看我的答案: 如何在 .NET 客户端中通过 SignalR 发送大数据

您可以通过将 MaxIncomingWebSocketMessageSize 设置为 null 在 Startup.cs 中添加使消息大小为“无限”的行:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
    app.MapSignalR();
    GlobalHost.Configuration.MaxIncomingWebSocketMessageSize = null;
    }
}

} 我的工作有约 200kb 的数据,10 条消息始终发送。我不知道如果每秒发送的数据更多,它的效果如何。

于 2016-10-05T06:42:57.150 回答
0

拆分数据并发送。您可以发送后台模式或正常发送,使用压缩技术,这样可以减少数据大小。

于 2018-08-25T14:11:11.687 回答