Muszę wdrożyć pewien mechanizm komunikacji w mojej aplikacji, aby wysyłać powiadomienia/wiadomości z jednej instancji aplikacji do wszystkich innych. Jest to normalny scenariusz, w którym ktoś dodaje i element lub usuwa oraz element i chcesz powiadomić innych użytkowników, że tak się stało.Wiadomości w sieci lokalnej z .NET
Aplikacja działa na kliencie i łączy się z bazą danych w sieci lokalnej. Zatem nie jest tak, że wszyscy klienci uzyskują dostęp do instancji serwera aplikacji. Więc z tego, co wiem, mogę użyć MessageQueues lub jakiejś formy pollingu bazy danych, gdzie mam tabelę, która przechowuje wszystkie wiadomości (nie jest idealna).
Problem jest potrzebne do realizacji tego bardzo szybko, więc niestety nie mogę iść bardzo skomplikowane, ale trzeba najszybszą najłatwiejsze rozwiązanie.
dzięki za pomoc!
Tak, myślałem o optymistycznej współbieżności, ale to nie jest opcja dla mnie, ponieważ muszę powiadomić użytkowników, gdy zostanie wstawiony nowy element (w ciągu kilku sekund od tego zdarzenia). Dodawanie całej warstwy wiadomości nie jest idealne, ale pozwoliłoby mi na jej intensywne używanie w systemie. Problem jest w mojej aplikacji testowej Dostaję problemy z MSMQ - Domain ... więc pomyśl o sondowaniu, chyba że są inne opcje. – Richard
MSMQ to pies. "Prawidłowy" sposób na zrobienie tego jest prawdopodobnie czymś w rodzaju systemu publikowania/subskrybowania, do którego można się zgłosić lub znaleźć kilka bibliotek. Wiem, że SQL Server Service Broker ma kilka funkcji powiadamiania, które mogą pasować do twoich celów (jest to kolejka wiadomości w SQL, przeznaczona dla przechowywanych procesów, aby powiadomić inne jednostki, że coś się zmieniło). – Spence
Cóż, MSMQ i wszystkie inne opcje zajęłyby zbyt dużo czasu, więc zaimplementowałem je już za pomocą odpytywania. Właśnie utworzyłem tabelę, odpytuję ją co N sekund, a następnie, jeśli jest tam wiadomość dla tego użytkownika, przeczytaj ją i przetwórz, a następnie usuń tę wiadomość. I gdziekolwiek chcesz, po prostu utwórz wiadomość w tabeli dla każdego użytkownika. Kiedy użytkownik się loguje, upewnij się, że wszystkie wiadomości są usuwane, aby nie dostał 100 wiadomości, gdy się loguje. Wszystko to jest bardzo proste, ale działa tak, jak potrzebuję w naszym małym systemie. Dzięki. – Richard