Przesyłanie danych z SQL Server do aplikacji internetowej za pomocą SignalR

Moja aplikacja internetowa ASP.NET MVC 4 wyświetla często aktualizowane dane klientowi. Dane pochodzą z zewnętrznego źródła (aplikacji zainstalowanej na serwerze) i przetwarzane przez SQL Server 2008 R2.

Obecnie przepływ danych jest dość tradycyjny: klienci odpytują z ASP.NET, a ASP.NET odpytuje z kolei z SQL Server.

Aby uniknąć odpytywania (a teraz, gdy potrzebuję interakcji między użytkownikami aplikacji internetowej w czasie rzeczywistym), zmieniam podejście do pushowania, używającsignalR do transmisji danych do klientów. Zwiększa to płynność działania użytkownika, a także zmniejsza obciążenie związane z odpytywaniem między klientami a serwerem ASP.NET.

Problem polega na odwróceniu przepływu między SSRV i ASP.NET: chciałbymprzesuń dane z SSRV do ASP.NET w najbardziej efektywny sposób.

SSRV prowadzi drogie zapytania, aby zaimportować niektóre dane zewnętrzne - a po przetworzeniu danych są one również gotowe do udostępniania przez Internet za pośrednictwem transmisji.

Moje obecne podejście poor-man: wydanie żądania POST Http do aplikacji internetowej (na localhost) w celu wysłania danych (do tego używam funkcji CLR).

Po przetworzeniu danych pakuję je gotowe doHttpWebRequest, ustaw je w Service Broker, aby uniknąć wpływu na inne działania, a ja skończyłem.

OdpisałemSqlDependency zmusiłoby mnie to do zapytania o dane - nie jest to duża zaleta (zamieniłbym żądanie HTTP lokalnego hosta na zapytanie uruchomione na SQL Server)

Jednocześnie czuję, że powinien to być lepszy sposób.

Jakieś sugestie?

questionAnswers(2)

yourAnswerToTheQuestion