信号器已连接

时间:2013-03-03 19:34:39

标签: c# javascript asp.net signalr

所以我这样做了:

 public string  getClientConnectionId()
{
    return Context.ConnectionId;
}

我在服务器端有一个default.aspx页面我在页面加载

上做了这个
string i = new ChatHub().getClientConnectionId();

但我得到一个对象引用未设置为对象错误的实例我需要获取我的客户端连接ID所以我可以将它存储在我的数据库中我的数据库中客户端有两个id是自动生成的主键ID ChatId谁应该是连接ID所以我该如何解决我的问题呢?

1 个答案:

答案 0 :(得分:2)

如果你正在使用WebForms,并且你有一个带有代码的aspx页面,你就不能使用新的MyPage()。Page_Load(),它会以某种方式爆炸,因为你 NOT < / strong>负责创建页面。 MVC控制器和SignalR集线器以及持久连接也是如此。

当您启动连接客户端时,它会运行完整的管道以获取连接ID。您可以在客户端使用此连接ID(在这种情况下使用$ .connection.hub.id),如果您想以某种方式将其传递回页面,则需要向传递的页面发出请求来自客户端的连接ID。

当客户端连接时,您也可以在集线器中进行映射,但这需要更多的应用程序知识才能知道它是否可能。