gpt4 book ai didi

c# - 当我在多个集线器中使用共享连接时,OnConnected 方法未调用 SignalR

转载 作者:太空狗 更新时间:2023-10-29 23:13:45 26 4
gpt4 key购买 nike

我们可以为不同的事物创建多个集线器,为了连接到每个集线器,我们可以创建多个具有共享连接的客户端集线器,这样,一个连接就可以连接到所有集线器。现在,问题出现了,集线器 onconnected 方法没有在每个集线器服务器端代码上引发。

public class Hub1 : Hub
{
public override Task OnConnected()
{
return base.OnConnected();

}
}

public class Hub2 : Hub
{
public override Task OnConnected()
{
return base.OnConnected();

}
}

比方说,在客户端,我使用在两个集线器上定义的客户端方法创建 hub1 和 hub2,然后在服务器端只调用其中一个集线器 onConnected 方法。如果我在客户端使用单独的连接创建集线器,则会调用 OnConnected 方法。因此,如果我想为每个集线器使用相同的连接,但又想引发单独集线器的 on Connected 事件,还有其他解决方法。

最佳答案

我通过在两个集线器上放置调试点来测试它,并且 OnConnected 确实会在两个集线器上调用,只要您对两个集线器都有任何订阅。

参见此处:Can I debug OnConnected method in SignalR Hub?

长话短说:按照设计,如果您没有任何对集线器的订阅,则 javascript 客户端无法从服务器获取任何消息,因此不会调用 OnConnected

编辑

参见 here注释部分:

Note: For JavaScript clients you have to register at least one event handler before calling the Start method to establish the connection.

在链接中查看更多内容。

关于c# - 当我在多个集线器中使用共享连接时,OnConnected 方法未调用 SignalR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32779150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com