首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时使用从SignalR开始和停止?

问何时使用从SignalR开始和停止?
EN

Stack Overflow用户
提问于 2013-05-31 09:49:36
回答 1查看 4.3K关注 0票数 1

我有一个MVC web应用程序,它有一个上传页面,可以将文件上传到服务器并处理该文件。因为处理可能需要一些时间(10到30分钟),所以我使用一个进度条来显示% complete。

在这个页面上,我有下面的代码来初始化SignalR:

代码语言:javascript
复制
// Define functions to facilitate push from the server.
m_uploadHub = $.connection.importDataHub;

$.extend(m_uploadHub.client, {
    updateProgress: function (pct) {
        progressbar.progressbar("value", pct);
    },

    updateStatus: function (status) {
        $("#status").html(status);
    },

    updateProgressBarText: function (text) {
        progressLabel.text(text);
    },

    complete: function () {
        // no
    }
});

try {
    $.connection.hub.start().done(function () {
        // Set connection id to hidden field
        $('#SignalRConnectionId').val($.connection.hub.id);
    });
}
catch (e) {
    alert('SignalR hub start fail: ' + e);
}

这意味着,当加载页面时,上面的javascript代码将运行,SignalR将启动并永不停止。

这个设计是正确的,还是应该只在用户单击“上传”按钮来实际上传文件时才使用$.connection.hub.start()?

当MVC动作返回时,我是否应该停止与$.connection.hub.stop()的连接?(文件已成功上载或返回了一些错误/警告)

请指点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-31 18:01:34

启动和停止SignalR连接可以使用多种方法。但是,我认为立即启动SignalR连接并永不停止这一点要常见得多。

在您的情况下,取决于“如果”您希望在点击/完成上传之前/之后使用SignalR连接,您可能需要采取不同的方法。

如果您真的不使用SignalR连接,除非用户单击“上载”,则只应在单击“上载”按钮时启动它。如果您在上传完成后不会使用SignalR连接,一定要停止它。如果您不使用它,就不需要让服务器一直使用它。

要解决一个稍微不同的问题(由@Steve提出):如果您在应用程序中只使用SignalR,那么这可能是过火了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16854493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档