SignalR文档说,在服务器广播类型的加载/实现的情况下,扩展/背板运行良好。但是,我怀疑在纯服务器广播的情况下,它会导致重复的消息被发送到客户端。请考虑以下情形:
请建议。
答案 0 :(得分:0)
问题不在于SignalR,而是您的数据库轮询存在于您的集线器中。背板正确处理广播复制,但如果您向集线器添加其他责任,那么它就是一个不同的故事。这是复制消息的部分,而不是SignalR,因为现在你有N个轮询器在所有服务器实例上进行广播。
例如,您可以将该逻辑从集线器中移除到其他内容,并让服务器应用程序的单个实例使用这个新部分,以便通过轮询来生成消息,使用可能的一部分配置决定哪一个。这样您只能从那里发送消息,SignalR的背板将负责复制。它只是一个非常基本的建议,可以采用不同的方式,但关键是你的轮询器不应该复制,并且与SignalR没有直接关系。同样正确的是,民意调查可能不是处理您的情景的最佳方式,但IMO会回答不同的问题。