SignalR是否适合获取服务器端(后台)处理的结果?

时间:2016-03-14 08:05:06

标签: javascript asp.net-mvc signalr

我有一个简单的ASP.NET MVC网页,其中用户上传文件,在服务器端处理文件,然后一些结果必须显示在同一页面中。

我已经选择了ajax上传(所以没有在[上传]按钮上完成页面重新加载)工作正常。调用文件的控制器的动作方法,一切正常。我正在使用上传组件,似乎成功了:"回调无法让我做出反应。

*编辑 除了成功回调似乎不可用,处理需要60秒。我想返回上传ajax调用立即,然后进行处理(可选择在客户端显示进度),并在处理完成时显示结果。 END EDIT *

我的第一个KISS(一个业余爱好者)的想法是:好的,然后将处理结果存储在会话中的服务器端,并从客户端调用ajax轮询返回结果的动作方法。顺便说一下,这不是KISS。

我的第二个想法是:好的,然后去专业,并使用SignalR。 (我从未使用过)。现在我正在谈论聊天教程,我怀疑:这个简单的任务不是SignalR过度杀伤吗?而且:SignalR是否适合这项任务?

2 个答案:

答案 0 :(得分:1)

信号R可以在成功时给予特定客户的响应..但是它是矫枉过正。在检查数据是否成功发布后,为什么不从服务器端发送响应(字符串或对象)。这减少了实现信号R的过度杀伤

答案 1 :(得分:1)

我正在使用SignalR做类似的事情:生成并向10 + k收件人发送简报。整个过程大约需要5分钟,管理员可以通过SignalR跟进进度。

SignalR最初看起来很复杂,但事实并非如此。我要说的优点之一就是易用性。在处理过程中,将更新推送到客户端非常简单。使它在客户端工作只需要少量的javascript行。

我猜这里的过度杀伤部分是你总是只向一个人播放。