【发布时间】:2012-10-13 02:03:42
【问题描述】:
我是 SignalR 的新手,正在尝试实现长时间运行的结果池。我已将 JS 添加到我的 ASP.NET MVC 应用程序并创建了错误类。
JS
<script type="text/javascript">
var message= $.connection.messageHub;
$(function () {
message.addMessage = function (htmlstring) {
alert(htmlstring);
};
$.connection.hub.start(function () {
message.longRunningMethod('@HttpContext.Current.Session.SessionID');
});
});
</script>
c#代码
[HubName("messageHub")]
public class MessagesHub : Hub
{
public void longRunningMethod(string sessionId)
{
var repeatChecking = 0;
while (repeatChecking < 3000000)
{
Caller.addMessage("Test");
repeatChecking++;
Thread.Sleep(TimeSpan.FromSeconds(1));
}
}
}
代码运行良好,但存在一个问题。每次同一用户刷新网页时,都会创建新的 Hub 类并执行新的 longRunningMethod 方法。我想恢复连接并附加到同一个集线器实例并恢复接收消息。谁能解释一下如何实现这个?
【问题讨论】:
标签: asp.net-mvc-3 signalr signalr-hub signalr.client