2012-10-10 36 views
6

SignalR当我通过服务器向客户端(或客户端到服务器;或服务器到客户端)传输字节块时,会丢失许多消息。如何将块中的字节传输到客户端?

我将文件读入流中,并通过集线器或持久连接将其发送到其他客户端。这运行得非常快,但总是有信息丢失或丢失。

如何从客户端向客户端传输大文件(不管是否大块)而不丢失消息?

回答

5

正如@dfowler指出的那样,这不是适合这项工作的技术。我推荐的做法是发送一条消息,指出要下载的文件包含链接,然后可以使用针对静态文件或使用ASP.NET WebAPI编写的某些Web服务的标准GET请求下载该文件。

4

SignalR不适用于文件传输,它用于发送消息。

4

为什么它不是正确的技术?如果客户需要发送一些数据到signalR集线器,它应该能够通过signalR连接而不需要额外的东西。

事实上,它发送一个字节数组时,至少对我来说工作正常,但我传递块时遇到类似的问题。

也许你可以做一些测试来检查你发送块的顺序是否与它们接收到的顺序相同。

UPDATE

我做了一个测试自己和我的情况下,为了确实是问题。修改了接收块的集线器方法来接受一个订单参数,然后我用它在最后重建字节数组,并且它工作正常。说了这些之后,我现在明白了这对于大文件传输来说不太合适。

在我的情况下,我不需要传输大量的数据,我只是想给我的用户界面指示进度,要求数据以大块的形式发送。

+0

你有这样的代码示例吗?你如何得到大块?谢谢 – user1331889

相关问题