2009-02-16 5 views
0

Где я могу начать с запуска события по сети? В моем случае, когда я изменяю запись базы данных, я хочу сообщить любому другому пользователю в сети, в котором работает то же самое приложение, которое оно изменило.Увольнение события по сети

Edit:

Ничего умный, не горячись. Я пишу систему управления документами, и когда документ каким-либо образом изменен (удалено, выписано, выпущено и т. Д.), Я хочу «рассказать», что все что-то изменилось. Я собирался использовать FileSystemWatcher для просмотра папки на сервере, подписывать каждый экземпляр до его удаляемого события и просто создавать и удалять файл в наблюдаемом каталоге, но это просто грязно, не так ли? Как вы можете сказать, я не профессиональный программист :)

ответ

2

Какое временное ограничение для уведомлений вы после? Я бы лично попросил клиентские машины опросить сервер для получения обновлений - например. «Мое последнее обновление было 17/02/2009 11:56:00 - что изменилось с тех пор?» - путем внедрения веб-службы или простого сокет-сервера на реальном сервере.

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

Не могли бы вы рассказать нам немного больше о вашей ситуации?

0

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

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

Серверное приложение может либо сразу отправить сообщение в клиентское приложение, либо клиентское приложение могло опросить.

0

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

Решите сами на транспортном механизме, но вы можете рассмотреть сокеты.

0

WCF может сделать это для вас. У меня есть сервер, который посылает и тревожит всех клиентов, когда что-то происходит.

0

Как вы отслеживаете изменения файлов?

Я предполагаю, что вы используете базу данных (если нет, сейчас самое подходящее время для установки) - в этом случае я бы рекомендовал написать веб-сервис ASP.NET (расширение .asmx - Visual Studio может сделать их действительно легко) связываться с этой базой данных и сообщать клиенту, были ли изменены какие-либо файлы с момента последнего его проверки.

Попробуйте создать веб-сервис для сервера в Visual Studio, чтобы узнать, как это делается. Чтобы использовать («использовать») веб-сервис на клиентской машине, откройте свой проект VS, щелкните правой кнопкой мыши по узлу «Ссылки» в проекте и выберите «Добавить веб-ссылку».

Клиент должен будет опросить веб-сервис, хотя это механизм одностороннего вызова-ответа.

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

Смежные вопросы