LINUX.ORG.RU

Вечный цикл в CGI.

 ,


0

1

Вот допустим я извращаюсь и в cgi скрипте запускаю цикл который там считает что-то и я хочу что-бы результат каждой итерации выводился на web страничку. Как?

В простейшем варианте скажем счётчик должен выводить новое число на страничку раз в 5 секунд.

Решение: Использовать WebSocket.

★★★★★

Последнее исправление: Dron (всего исправлений: 1)

man pthreads

Или почитай про IPC.

Eddy_Em ☆☆☆☆☆
()

А, не дочитал. Еще понадобится либо асинхронное пингование раз в N секунд (если аяксить), либо вебсокеты (тогда будет стопудово синхронно с точностью до всяких там задержек пакетов).

Eddy_Em ☆☆☆☆☆
()

Веб соекты же!

Macil ★★★★★
()
Ответ на: комментарий от Eddy_Em

P.S. только для вебсокетов сишной библиотеки все еще нет. Простейший случай можно навелосипедить, а вот общего — фигвам. Но в твоем случае вроде как общий нафиг и не нужен.

Eddy_Em ☆☆☆☆☆
()

Как один из неправильных вариантов: аппендишь в файл, скрипт читает файл, в хедере релоад по времени

minakov ★★★★★
()
Ответ на: комментарий от minakov

Тогда можно просто демона запустить, который будет данные из очереди читать и в буфер складывать. А по запросу отдавать. Только нафиг?

релоад по времени

некошерно-то как!

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Спасибо, почитал про вебсокеты, буду юзать их.

Dron ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Вижу ты в вебдеве не новичёк (не то что я). Тогда такой вопрос (он меня уже долго мучает). Почему бы не сделать сервер к httpd не имеющий никакого отношения, который будет принимать запросы в json форме например и возвращать какой-то там результат. А со страницы запросы будет делать какой-нибудь код на js? Такое вообще возможно?

Да, я полный н00б в этох ваших вебах.

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

Дергать скриптом по интервалу не самая лучшая затея. Клиенту лучше просто слушать.

ritsufag ★★★★★
()
Ответ на: комментарий от nanoolinux

Да запросто. Если тебя устроит асинхронность. Но тогда и обычный апач можно использовать.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Здоров я тут покопался в истории и у тебя была такая же проблема как у меня по сути, один в один, принцип работы веб кокетов вроде ясен, а как блин на стороне сервера это реализовать хоть убей не пойму, cgi + Cи + apache. Поделись примером.

Dron ★★★★★
() автор топика
Ответ на: комментарий от Dron

Я начал было делать универсальную библиотеку, но забил. Если не пытаться универсалить, то все делается достаточно просто.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Dron

Попробуй — стырил у кого-то элементарную реализацию вебсокетов под старый протокол, допилил под новый. Вроде, файл этот. Если не оно, поищу, куда же я его запихал... Точно помню, что начинал пилить универсальную библиотеку, но фиг ее знает, на каком из компьютеров.

Еще глянь это. Может, оно лучше.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Dron

Точно: вторая ссылка свежей. Я там уже начал что-то пилить. Только, кажется, собираться ничего не будет, т.к. нифига не допилено.

Похоже, собирал на домашнем компьютере (он отключен сейчас): ни на буке, ни на рабочем не нашел.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Ок, спасибо, завтра пощупаю.

Dron ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Между делом ползая в сети наткнулся на это.

http://libwebsockets.org/trac/libwebsockets
http://git.libwebsockets.org/
https://github.com/warmcat/libwebsockets

Особо глубоко не вглядывался, но похоже запилено то что пилишь ты.

Dron ★★★★★
() автор топика
Последнее исправление: Dron (всего исправлений: 1)
Ответ на: комментарий от Dron

Первые две ссылки — одно и то же. Третья, судя по содержимому, — тоже.

Особо не глядел, но, действительно: очень похоже на то, что нужно. Возможно, я рад.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.