我正在使用 SignalR 将消息从 ASP.NET MVC 服务器推送到 Web 客户端。
我想在接受来自客户端的新连接时存储当前客户端的连接 ID,以便当我想向该特定客户端发送数据时,我可以从 Session 中检索其连接 ID 并向其发送消息。
但是,在 OnConnected 事件处理程序中,会话为空。因此,当我尝试将 connectionId 放入会话中时,我的代码会引发空引用异常。
这是代码片段。
using Microsoft.AspNet.SignalR;
namespace TestSignalR
{
public class SignalRServerListener : PersistentConnection
{
protected override System.Threading.Tasks.Task OnConnected(
IRequest request,
string connectionId)
{
System.Diagnostics.Debugger.Break();
System.Diagnostics.Debug.
Print("Connection request received and accepted from
client with connection Id {0}", connectionId);
HttpContext.Current.Session["connectionId"] = connectionId;
return base.OnConnected(request, connectionId);
}
}
}