我使用的是SignalR 1.0.4,它有一个集线器,该集线器返回从一个可观察到的扩展中创建的ChannelReader。
一个类型记录客户机(也是1.0.4)被迫只使用websockets连接,并从这个通道很好地传输数据。
现在,我正在使用集线器的两个实例进行测试,这两个实例都使用相同的Redis连接。我从通道的两个实例上可观察到的值发出值,但客户端似乎只接收连接到的实例的数据。我的结论是,频道读取器的数据不会通过Redis广播给其他频道。
我试图通过复制项目并给副本不同的主机I来模拟2个负载平衡的实例来使用SignalRSamples来复制。我向两个项目添加相同的Redis连接,并启动这两个项目。
通过hubs.html进行常规的websocket连接在实例之间广播数据没有问题。streaming.html不为可观察或频道阅读器复制数据。
频道阅读器是否意味着要以这种方式使用,即它们是否可以扩展?
发布于 2018-10-29 18:20:49
ChannelReaders的意思是将数据向下流到方法的调用方。他们根本不参与规模扩张。考虑到它们与标准返回值相同,SignalR只支持在一段时间内枚举它们的项。编程模型非常类似于迭代器在C# (使用yield关键字的方法)中的工作方式。如果要向其他客户端广播消息,则只需使用Hub基类上的Hub属性并向这些客户端发送消息即可。
https://stackoverflow.com/questions/53040903
复制相似问题