Recently we've tried to change the SignalR on a couple web apps to work in a web farm situation by using a SQL backplane.
The number of different ways we could tweak it are multiplying in my head as I explore how it's working (toward the goal of most scalability, least points of failure).
Currently SignalR is used by each app to support a poll-driven broadcast of changes noted in the database.
Essential assumptions/observations about using one backplane for all SignalR instances on all apps:
All hubs and hub instances (of all types) that have one common backplane live on just one messagebus.
All hub instances essentially "merge" their client pool. The hub instance cannot actually know how many clients they have.
Message traffic from some AppB_Hub can be seen in trace output from AppA. I assume if AppA had a hub with the same name they'd be in conflict -- or maybe not as long as they realized they'd be sharing clients.
Questions/concerns/unknowns:
Hub are stand alone , so different hubs play nice , how ever if you place them in different assembly and want to access each other , see here
names and callback are based on which hub your client connects to , they should be unique for debugging purposes, if you client connects to 1 or more different hub if each client connects to only one hub
for performance counter, see here , Microsoft uses signlR back plane in their azure web services , so it does scale however there is not published whitepapers on the benchmark figures
If you want to use the interfaces approach IAppAHub and IAppBHub your java script client can call IAppAHub and IAppBHub methods , if you want to limit you can to it by role for that you should look into SignalR securty
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.