我打算在客户端和服务器之间使用signalR进行一些实时通信。有时候客户端需要向服务器发送大约15MB的大数据。
1)看起来signalR不是用于发送大数据。他们是否在最近的版本中添加了对发送大数据的支持?
2)我可以在邮件中发送的最大数据数组是多少?
3)分割大数据并将其作为较小的块发送是否太慢了?
4)替代选项是什么?我可以研究一下这个例子吗?
5)我可以运行WCF服务来传输大数据和signalR以进行实时通信吗?
答案 0 :(得分:6)
发送SignalR将使用错误的工具进行工作。在这种情况下,最好的办法是通过SignalR发送一条特定的消息,该消息将URL作为参数传递。然后通过使用任意数量的方法在客户端中触发基于标准HTTP GET的下载来处理。
答案 1 :(得分:0)
如果你真的需要使用SignalR,你可以在以下网址查看我的答案: How to send big data via SignalR in .NET client
您可以通过将MaxIncomingWebSocketMessageSize设置为null来在Startup.cs中添加一条使消息大小为“无限”的行:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
GlobalHost.Configuration.MaxIncomingWebSocketMessageSize = null;
}
}
} 我的数据量约为200kb,10条消息一致发送。如果每秒发送更多数据,我不知道它有多好。
答案 2 :(得分:0)
分割数据并发送。您可以发送后台模式,也可以正常发送 使用压缩技术,以便可以减小数据大小。