ProKiLL
@ProKiLL
Системный администратор

Как организовать связь?

Имеется:
- Проект на C# (Клиент который запрашивает информацию с БД)
- БД на MySQL
- 45 ПК на которых установлены клиенты
- В клиенте предусмотрена возможность разграничение прав (Администратор, Редактор, пользователь)

Необходимо:
- Организовать связь между включенными клиентами, при передаче определенного сообщения от Администратора клиентам, на клиентах необходимо вывести определенные данные из БД.

Решение:
В БД создал таблицу, которую клиенты прослушивают каждые 5 секунд, но возникает вопрос на слабых ПК Клиент зависает.
Необходимо реализовать как то иначе.

Вопрос:
Как реализовать связь между клиентами по TCP или UDP протоколу (желательно организовать клиент и сервер в одном проекте)

Примечание:
Ссылки на источники приветствуются
  • Вопрос задан
  • 2703 просмотра
Пригласить эксперта
Ответы на вопрос 3
Первое. Подумайте, а должны ли клиенты все напрямую ходить в БД. Разграничение прав у вас не работает: клиентскому коду нельзя доверять. Вам стоит сделать выделенное приложение сервер.
В БД создал таблицу, которую клиенты прослушивают каждые 5 секунд, но возникает вопрос на слабых ПК Клиент зависает.

Тут что-то не так либо у вас зависает сервер, а не клиент. При увеличении количества клиентов нагрузка на клиентов обычно не растет. А с одним запросом раз в 5 секунд может справиться совсем любой компьютер, если только не пытаться вычитать всю базы данных каждый раз.
Как реализовать связь между клиентами по TCP или UDP протоколу (желательно организовать клиент и сервер в одном проекте)

Связь бывает сильно разная и с сильно разными требованиям. Если вам нужно именно передавать сообщения, то возможно вам подойдет библиотека zeromq. Или, может быть, вас устроит держать открытый tcp сокет между клиентом и сервером и пересылать сообщения через него вручную, снабжая их разделителями.
Ответ написан
Комментировать
AxisPod
@AxisPod
Как реализовать связь между клиентами по TCP или UDP протоколу (желательно организовать клиент и сервер в одном проекте)

Тут лучше использовать WCF.

В БД создал таблицу, которую клиенты прослушивают каждые 5 секунд, но возникает вопрос на слабых ПК Клиент зависает.
Необходимо реализовать как то иначе.

Тут либо очередь сообщений, либо уведомления на базе WCF (тут есть поддержка очередей сообщений)/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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