我正在尝试调试SignalR集线器,并注意到即使使用单个客户端也会多次调用构造函数。这是预期的行为吗?我期待构造函数只被调用一次进行类初始化,但我多次点击断点。
答案 0 :(得分:21)
在SignalR Hub中,将根据每个请求创建实例。因此,只有一个客户或更多客户端并不重要。 实际上Hub是对PersistentConnection的抽象,如果你想要更精确地控制场景背后发生的事情你可以使用PersistentConnection。 点击此处:https://github.com/SignalR/SignalR/wiki/PersistentConnection
答案 1 :(得分:7)
正如Incognito正确指出的那样,SignalR为每个请求创建了一个Hub的新实例。您应该使用静态成员在Hub中为所有请求存储所需的信息。如果您希望每次新客户端连接到集线器时都执行某些操作,则应将该代码放在OnConnected中。