Обмен сообщениями в локальной сети с.NET

Я должен реализовать некоторый механизм формы общения в своем приложении, для отправки уведомлений/сообщений от одного экземпляра приложения до всего другие. Это - нормальный сценарий, где кто-то добавляет и объект или удаляет и объект, и Вы хотите уведомить других пользователей, что это произошло.

Выполнение приложения на клиенте и подключениях к базе данных по локальной сети. Так не как все клиенты получают доступ к экземпляру сервера приложения. Таким образом от того, что я знаю, что мог использовать MessageQueues или некоторую форму опроса Базы данных, где у меня есть таблица, которая хранит все сообщения (не идеальный).

Проблема, я должен реализовать это очень быстро, так печально не могу пойти очень сложный, но нуждаться в самом быстром самом легком решении.

спасибо за справку!

5
задан John Saunders 16 March 2010 в 09:43
поделиться

6 ответов

Похоже, вам будет проще использовать оптимистичный параллелизм. Предположим, что что-то не будет удалено, и разобраться с этим на затронутом клиенте, когда это произойдет, что должно быть проще, чем разработка какой-то системы одновременных уведомлений, которая вообще не будет масштабироваться ...

Кроме того, если вы являетесь клиентом list небольшой, опрос db - это самый простой способ сделать это, не добавляя еще один уровень связи в вашу систему, просто добавьте таблицу и реализуйте библиотеку классов, чтобы каждый мог делать свое дело, если вы можете получить доступ к БД, к которой вы можете узнать об удаленных элементах и ​​т. д.

2
ответ дан 15 December 2019 в 06:22
поделиться

Очереди Rhino должны помочь. Это сверхлегкая очередь, которая не требует MSMQ и может быть развернута XCOPY

http://ayende.com/Blog/archive/2009/04/03/rhino-queues-take-6.aspx

1
ответ дан 15 December 2019 в 06:22
поделиться

В зависимости от топологии вашей сети естественным выбором будет либо широковещательная (та же подсеть), либо многоадресная рассылка по нескольким подсетям, когда добавляется что-то новое.
Трансляции довольно просто запрограммировать, но вы сначала необходимо проверить, разрешены ли они в вашей сети.

0
ответ дан 15 December 2019 в 06:22
поделиться

Возможно, вы захотите проверить мое сообщение в блоге здесь , в котором обсуждается возможная реализация агрегатора межпроцессных событий.

0
ответ дан 15 December 2019 в 06:22
поделиться

Я думаю, что опрос БД будет самым быстрым способом. Что-то очень простое, например, когда в таблице происходит модификация, сохраните время, когда это произошло, в другой таблице, используя триггер - это один из способов сделать это.

Ваши клиенты запрашивают эту таблицу и сравнивают с локально хранящимся временем изменения, если время в базе данных новее, то обновляют.

Все, что больше этого, стало бы сложным, особенно с вашим требованием "пары секунд".

Вы можете реализовать все это таким образом, чтобы позже, если потребуется, заменить на более тяжелый метод.

0
ответ дан 15 December 2019 в 06:22
поделиться

Я считаю, что вы можете сделать это с помощью WCF. Он имеет привязку для одноранговой связи.

0
ответ дан 15 December 2019 в 06:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: