SignalR - 在协商请求期间在服务器端获取连接ID

时间:2012-02-27 14:17:19

标签: signalr

SignalR的协商调用返回连接ID。有没有办法在调用协商请求时在服务器端获取连接ID?

生成连接ID时是否可以订阅服务器端事件?

3 个答案:

答案 0 :(得分:0)

如果您使用的是PersistentConnection,则可以覆盖

ProcessRequestAsync(HostContext context)

方法并从HostContext的IResponse属性获取connectionId值。

另一种方法是使用DependecyResolver提供自己的IConnectionIdFactory实现,该实现在返回connectionId字符串之前引发事件。

答案 1 :(得分:0)

如果您使用的是SignalR Hub,则可以收听connect事件,然后抓取 Context.ConnectionId 。 E.g。

public override Task OnConnected()
{
    return Clients.All.joined(Context.ConnectionId, DateTime.Now.ToString());
}

有关详情,请参阅https://github.com/SignalR/SignalR/wiki/Hubs

答案 2 :(得分:0)

string connectionID = Context.ConnectionId;