ASP.NET MVC - 从“未连接”类访问会话信息

问题描述:

我正在使用XSockets。现在,从xsocket控制器内部,我需要访问我的用户数据。我试着这样做:ASP.NET MVC - 从“未连接”类访问会话信息

public class SocialsController : XSocketController, Controller

但是,这是不允许的。有没有办法让我访问我的SocialsController中的所有会话数据?

由于服务器在IIS之外运行,因此不能在XSockets中使用ASP.NET会话。 将来你可能能够,但不是在当前版本中。

您在XSockets中创建的每个连接都有自己连接的控制器实例。所以我们在控制器上有状态,并且常规的HTTP/ASP.NET MVC没有状态。这就是为什么他们需要会话。

那么如果刷新/更改XSockets中的页面呢? 因为控制器会“死”,所以你将会失去状态...... 但是,XSockets有它自己的SessionStorage,所以你可以在服务器上为特定的客户端存储数据。这个SessionStorage既可以从JavaScript也可以从C#访问。

C# 实例存储Person对象,但是它可以是任何东西

//Save in storage (will be there even if you disconnect and then reconnect) 
this.StorageSet("me",new Person{Name="Uffe", Age=35}); 
//Get from storage (casting to correct type). 
var p = (Person)this.StorageGet("me"); 

的JavaScript

//设置,但检查http://xfiddle.net/XFiddle/的获取,设置,删除,GETALL

var myStorageObject = { Key: 'foo', Value: $("#storeValue").val() }; 
ws.trigger(XSockets.Events.storage.set, myStorageObject); 

Regards Uffe