2012-02-17 12 views
5

W czasie połączenia mapuję identyfikator klienta na inne informacje o kliencie i subskrypcji, które buduję w zmiennej statycznej. Działa to dobrze, dopóki pula aplikacji nie zostanie ponownie przetworzona lub ponownie skompilowana, a następnie utracę swoje odwzorowania.SignalR: Ponowne pozyskiwanie informacji o kliencie po odtworzeniu puli aplikacji

Połączenia klienckie są kontynuowane po odtworzeniu puli aplikacji, ale nie widzę niczego w metodach OnConnectAsync() ani OnReceivedAsync().

Widzę w Firebug, że nowy test POST jest wysyłany przez moich klientów co 4 minuty. Czy jest jakieś zdarzenie SignalR, które można przesłonić, aby przechwycić przychodzące POST i odbudować mapowanie klienta dla bieżących trwałych połączeń?

Dzięki.

Odpowiedz

4

Upewnij się, że używasz SignalR 0.4. Możesz obsługiwać OnReconnectedAsync.

https://github.com/SignalR/SignalR/wiki/PersistentConnection

OŚWIADCZENIE: Jeżeli przechowujesz swój stan aplikacji w zmiennych statycznych, że nigdy nie będzie w stanie przeskalować na farmie (ale może nie obchodzi).

+0

Czas na pamięć podręczną Redis lub Mem? ;-) –

+0

Czy to nadal dotyczy wersji 1.1.2? Mamy problem z tym, że SignalR nie przeżył recyklingu puli aplikacji. – Anders

+0

LongPolling nie zwiększa ponownego połączenia po stronie serwera w puli aplikacji, ale sygnalizator ponownie łączy się dobrze. – davidfowl

Powiązane problemy