Соединение между клиентом и сервером WPF C#.NET

151
06 мая 2018, 17:52

У меня две программы Клиент программа и Сервер программа написанные на WPF C#.NET. Сервер программа будет стоять на Dedicated Server.
1. Мне хочется понять, как мне быть если я хочу знать через одного клиента что другой онлайн, для этого подойдет сокет TcpClient? Если да, то это нормально чтоб он постоянно был подключен вить в какойто момент я подключюсь к клиенту(клиент к клиентy) и начну передовать данные (1кб - 5кб размер, 1/1сек до 20/1сек пакетов).
2. Но скажем у меня клиентов много пускай 10к, все они будут подключены к одному TcpListener соккету? Или на каждую тысячу по TcpListener?
3. Ну и как быть если скажем если у меня несколько Dedicated Server серверов(Europe, Asia, USA) как объединить все сервера между собой.

спасибо за любую помощь.

Answer 1
  1. Клиентам нужно периодически опрашивать сервер на предмет изменений (если их много то можно использовать RabbitMq), на котором при подключении автоматом оповещаются все заинтересованные объекты. В любом случае надо подключаться к серверу чтобы узнать статус нужного клиента и его IP. TcpClient вполне подойдет для этих целей.
  2. Тут однозначного ответа нет, может и один TcpListener, а может и несколько "висящих" на разных IP адресах, а может стоять балансироващик, который распределяет запросы по серверам в зависимости от их загруженности. В любом случае обычно при подключении к TcpListener, запускается отдельный поток для работы с клиентом.
  3. Тут вопрос архитектуры, может есть смысл сделать один балансировщик для распределения запросов между серверами, какая-то шина для их взаимодействия и какое-то единое хранилище данных. Во многом все же построение такой системы зависит от конкретной ситуации и выполняемых задач, поэтому какого-то единого решения нет.
READ ALSO
App.config и приложение на C#

App.config и приложение на C#

у меня есть небольшая программа на 2 версииNET , но новых версиях Windows она не запускается, но если создать файл настроек ,то она запустится

203
GetType возвращает null

GetType возвращает null

Всем добра! Почему TypeGetType("System

163
Перетаскивание элемента за любую часть

Перетаскивание элемента за любую часть

Создал кастомный контрол, у которого есть только текстНужно, что бы весь контрол можно было перемещать не зависимо от того, нажал юзер по тексту...

147