我一直在寻找在浏览器中实现类似gmail的消息传递的方法,并得出了Comet的概念.但是,我还没有找到一个很好的.NET实现,允许我在IIS中执行此操作(我们的应用程序是用ASP.NET 2.0编写的).
我找到的解决方案(或者可以想到的解决方案)需要为每个用户留下一个正在运行的线程 - 这样一旦收到消息就可以向他返回响应.当然,这根本不可扩展.
所以我的问题是 - 你知道Comet的ASP.NET实现以不同的方式工作吗?这甚至可以用于IIS吗?
我正在构建一个图像管理工具,我想知道如何创建类似Vimeo的体验.
需要说明的内容
用户将能够使用plupload上传许多可能较大的图像(无页面重新加载).然后,服务器将对每个上载的映像执行以下操作.
提供异步反馈
Plupload(图像上传工具)在将文件上传到我的服务器时有非常好的视觉反馈,但是,我希望能够在服务器进行所有图像处理并上传到远程存储时向用户提供额外的反馈.
Vimeo做得很好.当您上传视频时,它会确认已上传,但随后说"我们正在对您的视频进行编码,请稍候",并且用户界面会提供某种进度指示.
在将图像上传到我的服务器后,我想给用户两种反馈.每次处理图像并上传到S3时,我想:
示例MVC控制器操作
[HttpPost]
public virtual ContentResult Upload(Guid albumId)
{
foreach (string file in Request.Files)
{
HttpPostedFileBase f = Request.Files[file] as HttpPostedFileBase;
if (f.ContentLength == 0)
continue;
var uploadDir = Server.MapPath("~/uploads/"+ albumId);
var filePath = Path.Combine(uploadDir, Path.GetFileName(hpf.FileName));
f.SaveAs(filePath);
// How can I trigger some async task here that would be able
// to trigger some sort of feedback to the browser when complete?
SomeAsyncImageProcessor.ProcessImage(albumId, filePath); …Run Code Online (Sandbox Code Playgroud)