【发布时间】:2020-09-19 11:01:14
【问题描述】:
我正在使用 SignalR 在会话超时后重定向我的应用程序:
void Session_End(object sender, EventArgs e)
{
var HubContext = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
HubContext.Clients.All.clientListener(false);}
还有我的 Hub 类:
public class MyHub : Hub
{
public void ServerListener(bool result)
{
Clients.Caller.ClientListener(result);
}
}
JavaScript:
(function () {
var myHub = $.connection.myHub;
$.connection.hub.start()
.done(function () {
console.log("Connected");
})
.fail(function () {
alert("Failed!");
})
myHub.client.clientListener = function (data) {
if (data == false)
window.location.href = "/Home/Index";//@Url.Action("Index","Home");
}
})();
我面临的问题是:
- 当连接多个用户时,所有用户都会同时注销,即使他们在不同时间登录也是如此。
- 即使发出常规请求,也会发生注销重定向。
如果有人能告诉我如何在不调用 Session_End() 的情况下进行“服务器推送”,那真的会对我有所帮助,因为我想使用“In Proc”以外的其他会话状态。
【问题讨论】:
标签: signalr session-state session-timeout