powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сообщение от севера клиенту.
8 сообщений из 8, страница 1 из 1
Сообщение от севера клиенту.
    #39847720
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня всем!
Вопрос: в сетевом программировании можно ли послать инфу от сервера клиенту, без запроса клиента?
Использую библиотеку RTC.
Там везде в примерах указаны схемы с функциями на сервере, которые вызываются клиентом.
Т.е. клиент шлет какой то запрос - сервер отвечает.

У меня будет приложение где возможно будет множество клиентов, каждый из которых будет слать некий запрос серверу раз в секунду.
Но далеко не всегда будет возвращаться ответ. И возможно что зачастую ответ будет равен предыдущему ответу.
Для оптимизации процесса я задумался над сабжем.
Т.е. у сервера есть инфа о том, какие данные нужны клиенту. И он может их посылать только тогда, когда они изменились. Т.е. не обязательно ждать запроса от клиента.
Но как послать, когда от клиента нет запроса?
...
Рейтинг: 0 / 0
Сообщение от севера клиенту.
    #39847722
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 варианта
1) Держать соединение между сервером и клиентами постоянно открытым. Тогда сервер знает обо всех подключенных клиентах и может им слать что угодно, когда угодно.
2) Клиенты регистрируют на сервере свои IP и порты по которым они будут работать как серверы. И сервер по факту превращается в клиента, который подключается по зарегистрированным IP и портам и отправляет им что угодно.
...
Рейтинг: 0 / 0
Сообщение от севера клиенту.
    #39847723
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 3 вариант... более гибкий..
1) Разворачиваем брокер (кафка/раббит/самописное нечто)
2) регистрируем там столько тем/каналов сколько будет сообщений (событий) от сервера
3) Клиенты подписываются у брокера на темы
4) Сервер по событиям шлет в брокер в соответствующие темы инфу.

Гибкость в том, что ни сервер ни клиент не знают друг о друге. При этом сервер можно горизонтально масштабировать.
...
Рейтинг: 0 / 0
Сообщение от севера клиенту.
    #39847729
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbolкак послать, когда от клиента нет запроса?Ровно точно так же, как в случае, если от клиента есть запрос. С помощью send.
...
Рейтинг: 0 / 0
Сообщение от севера клиенту.
    #39847750
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.

YuRockРовно точно так же, как в случае, если от клиента есть запрос. С помощью send.

В контексте использования библиотеки RTC - (насколько я понял философию автора) - мы можем только отвечать в контексте запроса от клиента. Во многих ответах на вопросы на своем форуме автор библиотеки регулярно просит воздерживаться от хранения соединений где то в глобальных переменных. Косвенно на такую философию указывает тот факт что там есть server.connectionCount, но нет sever.connections, и мы можем посылать инфу только в контексте запроса от клиента:
Код: pascal
1.
2.
3.
4.
5.
procedure TDataServer.RtcFunctionExecute(Sender: TRtcConnection;
  Param: TRtcFunctionInfo; Result: TRtcValue);
begin
  result.asString := 'myAnswer';
end;
...
Рейтинг: 0 / 0
Сообщение от севера клиенту.
    #39847766
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BasketbolВ контексте использования библиотеки RTC - (насколько я понял философию автора) - мы можем только отвечать в контексте запроса от клиента.Я не в курсе, что это за библиотека, и какие причины заставляют её использовать.
Я такими библиотеками не пользуюсь и написал в общем случае.

А вопрос в теме вообще странно звучал.
Довольно штатная ситуация, когда клиент коннестится [, проходит аутентификацию,] и начинает бесконечно получать эхо от сервера (состояние какое-то) без каких либо запросов.
...
Рейтинг: 0 / 0
Сообщение от севера клиенту.
    #39848319
vkorshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ответ на похожий вопрос от автора RTC - https://rtc.teppi.net/sdkarchive/index42454245.html?cmd=viewtopic&topic_id=207&section_id=9&sid=

Ну и еще наверно можно использовать websocket соединение. RTC так же поддерживает.
...
Рейтинг: 0 / 0
Сообщение от севера клиенту.
    #39848347
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или выкинуть напрочь это RTC и использовать BSD Sockets с которыми всё просто и понятно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Сообщение от севера клиенту.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]