Реализация клиент-сервера на C#
На сервере с выделенным IP создается очередь сообщений в виде структуры:
{
Int
DateTime
Double
Int
Int
Int
}
возможно лучше будет передавать битовый массив
Клиент коннектится к серверу и получает всю очередь сообщений
которая сжимается (поскольку очень много одинаковых сообщений) и ждет новых сообщений.
Операция асинхронная, т.е. во время приема очереди в нее могу добавляться сообщения.
Обеспечить работу клиента в оффлайн режиме.
Т.е. отслеживать отсоединение клиента от сервера и при повторном соединении принимать только новые сообщения.
Количество сообщений в очереди до 100 000 000
Среднее число добавлений сообщений в очередь 10-60 в секунду. В пике до 500. Максимульная задержка между передачей сообщения в очередь и принятием на клиенте 1 секунда (в режиме реал-тайм).
Сервер на С#. Клиент на C# и для FreeBsd.
Функции сервера
Start() – старт прослушки и создание очереди подключившихся клиентов
Stop() – остановка прослушки и создание очереди подключившихся клиентов
Send(p int, dt DateTime, p double, v int, v1 int, v2 int) – передача сообщения в очередь
Событие клиента (в случае отдельного приложения)
Receive(p int, dt DateTime, p double, v int, v1 int, v2 int) – принятие сообщения