21

我正在尝试调试 SignalR 集线器,并注意到构造函数被多次调用,即使使用单个客户端也是如此。这是预期的行为吗?我期望构造函数只被调用一次以进行类初始化,但我多次击中断点。

4

2 回答 2

23

在 SignalR Hub 中,将根据每个请求创建实例。因此,是否只有一个或多个客户端都没关系。实际上 Hub 是对 PersistentConnection 的抽象,如果你想更精确地控制幕后发生的事情,你可以使用 PersistentConnection。在这里检查:https ://github.com/SignalR/SignalR/wiki/PersistentConnection

于 2013-07-29T01:36:06.833 回答
9

正如 Incognito 正确指出的那样,SignalR 为每个请求创建一个新的 Hub 实例。您应该使用静态成员在 Hub 中为所有请求存储所需的信息。如果您希望每次新客户端连接到集线器时都执行一些操作,您应该将该代码放在 OnConnected 中。

于 2013-07-29T03:46:16.940 回答