|
|
|
Сообщение от севера клиенту.
|
|||
|---|---|---|---|
|
#18+
Доброго дня всем! Вопрос: в сетевом программировании можно ли послать инфу от сервера клиенту, без запроса клиента? Использую библиотеку RTC. Там везде в примерах указаны схемы с функциями на сервере, которые вызываются клиентом. Т.е. клиент шлет какой то запрос - сервер отвечает. У меня будет приложение где возможно будет множество клиентов, каждый из которых будет слать некий запрос серверу раз в секунду. Но далеко не всегда будет возвращаться ответ. И возможно что зачастую ответ будет равен предыдущему ответу. Для оптимизации процесса я задумался над сабжем. Т.е. у сервера есть инфа о том, какие данные нужны клиенту. И он может их посылать только тогда, когда они изменились. Т.е. не обязательно ждать запроса от клиента. Но как послать, когда от клиента нет запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2019, 23:12 |
|
||
|
Сообщение от севера клиенту.
|
|||
|---|---|---|---|
|
#18+
2 варианта 1) Держать соединение между сервером и клиентами постоянно открытым. Тогда сервер знает обо всех подключенных клиентах и может им слать что угодно, когда угодно. 2) Клиенты регистрируют на сервере свои IP и порты по которым они будут работать как серверы. И сервер по факту превращается в клиента, который подключается по зарегистрированным IP и портам и отправляет им что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2019, 23:53 |
|
||
|
Сообщение от севера клиенту.
|
|||
|---|---|---|---|
|
#18+
Есть 3 вариант... более гибкий.. 1) Разворачиваем брокер (кафка/раббит/самописное нечто) 2) регистрируем там столько тем/каналов сколько будет сообщений (событий) от сервера 3) Клиенты подписываются у брокера на темы 4) Сервер по событиям шлет в брокер в соответствующие темы инфу. Гибкость в том, что ни сервер ни клиент не знают друг о друге. При этом сервер можно горизонтально масштабировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2019, 23:57 |
|
||
|
Сообщение от севера клиенту.
|
|||
|---|---|---|---|
|
#18+
Basketbolкак послать, когда от клиента нет запроса?Ровно точно так же, как в случае, если от клиента есть запрос. С помощью send. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2019, 00:09 |
|
||
|
Сообщение от севера клиенту.
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы. YuRockРовно точно так же, как в случае, если от клиента есть запрос. С помощью send. В контексте использования библиотеки RTC - (насколько я понял философию автора) - мы можем только отвечать в контексте запроса от клиента. Во многих ответах на вопросы на своем форуме автор библиотеки регулярно просит воздерживаться от хранения соединений где то в глобальных переменных. Косвенно на такую философию указывает тот факт что там есть server.connectionCount, но нет sever.connections, и мы можем посылать инфу только в контексте запроса от клиента: Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2019, 07:59 |
|
||
|
Сообщение от севера клиенту.
|
|||
|---|---|---|---|
|
#18+
BasketbolВ контексте использования библиотеки RTC - (насколько я понял философию автора) - мы можем только отвечать в контексте запроса от клиента.Я не в курсе, что это за библиотека, и какие причины заставляют её использовать. Я такими библиотеками не пользуюсь и написал в общем случае. А вопрос в теме вообще странно звучал. Довольно штатная ситуация, когда клиент коннестится [, проходит аутентификацию,] и начинает бесконечно получать эхо от сервера (состояние какое-то) без каких либо запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2019, 12:21 |
|
||
|
Сообщение от севера клиенту.
|
|||
|---|---|---|---|
|
#18+
Ответ на похожий вопрос от автора RTC - https://rtc.teppi.net/sdkarchive/index42454245.html?cmd=viewtopic&topic_id=207§ion_id=9&sid= Ну и еще наверно можно использовать websocket соединение. RTC так же поддерживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2019, 14:16 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39848347&tid=2039151]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
158ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 505ms |

| 0 / 0 |
