Dla projektu powiadomienia, chcesz wypchnąć powiadomienia o wydarzeniach. Są to takie rzeczy, jak logowanie, zmiana profilu itp. I wyświetlanie do odpowiedniego klienta. Chciałbym przedyskutować kilka pomysłów na zebranie go razem i uzyskać porady dotyczące najlepszego podejścia.Jak zaimplementować Socket.IO z ASP.Net, IISNode, Node.JS i SQL Server dla powiadomień wypychanych opartych na zdarzeniach?
Zauważyłem here, że zmiany wprowadzone do CouchDB można wykryć strumieniem _changes, pobranym przez węzeł, a proces rozpoczyna się. Chciałbym zaimplementować coś podobnego (używam programu SQL Server, ale punkt wejścia na tym poziomie może nie być najlepszym rozwiązaniem).
Zamiast podążać za przykładem CouchDB (wykrywanie zdarzeń bazujących na bazach danych, myślę, że to po prostu komplikuje sytuację, ponieważ interesują nas zdarzenia klienta), myślałem, że gdy wystąpi zdarzenie, takie jak login użytkownika, to wiadomość jest wysyłana do serwera węzła z niektórymi szczegółami zdarzenia (żądanie RESTful?). Ta wiadomość jest następnie przetwarzana i transmitowana do wszystkich podłączonych klientów; odpowiedni klient wyświetla powiadomienie.
Proponowane ekosystem:
- .Net 4.0
- IIS
- IISNode
- Socket.IO
- node.js
- SQL Server 2008
Będzie być zbudowany do góry istniejącego projektu przy użyciu środowiska .Net (IIS itp.). Wiele przeglądarek klientów nie obsługuje gniazd internetowych, więc dobrym rozwiązaniem jest Socket.IO (wsparcie awaryjne). Jednak z tego, co I can see, Socket.IO tylko obsługuje tylko długie polling przez IISNode (co nie jest tak naprawdę problem).
Opcją jest udostępnienie punktu końcowego Socket.IO/Node wszystkim klientom, dzięki czemu powiadomienia oparte na kliencie mogą być wysyłane przez JS do serwera węzłów, który nadaje komunikat. (podąża za podstawowymi przykładami serwera-czatu/klienta/serwera).
Alternatywnie, można zastosować punkt końcowy IIS, ale może on obsługiwać tylko długi głosowanie (przez Socket.IO). Zapewniłoby to dodatkowe przetwarzanie back-end .Net, ale może zbytnio komplikować architekturę.
Czy dla węzła dostępne jest powiadomienie o zdarzeniu oparte na serwerze SQL?
Jakie byłoby najlepsze podejście?
Jeśli nie otrzymałem prawidłowej konfiguracji ekosystemu terminologii, proszę wyjaśnić.
Dzięki.
Dzięki Tomasz. Mówisz bardzo dobrze o implementacji SignalR. Problem polega jednak na tym, że projekt jest pofragmentowany między starszym kodem ASP i kodem .Net, więc myślę, że na razie komunikacja oparta na Javascript (nie C#) byłaby prawdopodobnie najlepszym wyborem. Jeśli otrzymam koncepcję SignalR poprawnie, w przyszłości, gdy projekt zostanie całkowicie przeniesiony do .Net, przełącz się na SiglanR. Czy są jakieś dobre przejścia z Node.JS, IISNode i Socket.IO? Spojrzałem również na kilka opcji SQL Server, ale przesadę dla tej aplikacji. – ElHaix
Korekta: Zaimplementuj podejście SignalR w .Net 4.0 jako usługę WCF, która może być używana przez klasyczny kod ASP. Rozwiązany. – ElHaix
Tomasz - czy możesz uczynić to ograniczenie jaśniejszym w dokumentach iisnode? Zainstalowałem iisnode i nodejs na moim Windows boxie, z głównym celem wykorzystania obsługi websocket - więc wygląda na to, że moje wybory używają nginx lub apache w systemie Windows lub przechodzę do Linuksa. – jnoss