|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Короче говоря, правильнее и проще будет дергать данные аяксом )) Но логику работы скрипта на сервере придется пересмотреть, т.к. один запрос, гадящий N порциями, меняется на N+1 запрос (1 обычный + N аяксовых приходов за порциями). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2011, 12:15 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
спрошу про похожую задачу, чтобы ветки не плодить: есть задача обмена короткими (до 200 байт) сообщениями юзер-то-юзер через общий вебсервер на пхп. Реализована в виде простейшего пхп-вебчата. Не устраивает суммарное время отклика (лаг) на передачу данных в 1 конец: юзер1-сессия1-чат на вебсервере-рефреш вебстраницы-сессия2-юзер2. Пир-то-пир не вариант (фаерволами всё закрыто, только хттп доступен). Подскажите, можно ли средствами пхп реализовать обмен между двумя клиентскими хттп-сессиями примерно так: - сессия1 делает долгий POST-запрос, секунд 30, передавая маленькими порциями нужные сообщения, вперемешку например с пробелами (чтобы не оборвалась сессия по таймауту); - сессия 2 аналогично делает долгий GET-запрос, тоже маленькими порциями (тоже фейковые пробелы например можно отдавать с сервера, если от сессии1 долго никаких данных не поступает); - пхп на вебсервере по получении очередной порции данных от сессии1 подсовывает их в буфер для отдачи в сессию2. - по прошествии 30 секунд сессии рвутся, и процесс повторяется заново. Или такой "пакетный" режим может не сработать на стороне вебсервера (хостинга провайдера)? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 10:45 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
помимо минимизации лага передачи пакета, хотелось бы таким образом минимизировать ещё и накладные расходы (трафик) на передачу данных - т.к. схема с чатом на каждое 100-200байт сообщение ещё и лишний http-заголовок порождает (ещё 200 байт, и часто не один, т.к. данные передаются нерегулярно). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 10:49 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Лучше это делать через вебсокеты. Давным давно делал чат на базе activemq, уже смутно помню. То ли через stomp как-то подключались клиенты к amq, то ли какой другой коннектор. Со стороны ПХП был скрипт, который управлял очередями (забирал сообщения от клиентов и передавал в каналы нужных клиентов, разруливал права доступа и т.п.) Хотя Java для этого лучше подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 11:19 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Хотя вот погуглил, есть и для пхп либы для организации работы вебсокетов, например https://github.com/varspool/Wrench ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 11:21 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
почитал про stomp - я так понимаю, что его не на каждом вебсервере провайдер даст поднять. К тому же, я правильно уловил, что ему нестандартный свободный порт на сервере нужен (на 80 не повесишь)? А штатные возможности движка пхп позволят отлавливать событие приёма очередной порции данных во входной буфер? Просто с пхп знаком весьма поверхностно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 11:27 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
+ за вебсокеты после php, особенно с опытом в JS, ближе будет node.js чем java, к тому же есть реализации на php: https://github.com/ratchetphp/Ratchet ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2018, 07:56 |
|
|
start [/forum/search_topic.php?author=diam123&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 745ms |
total: | 887ms |
0 / 0 |