PHP и IRC и оболочки - PullRequest
       1

PHP и IRC и оболочки

1 голос
/ 13 августа 2010

Я работаю с закрытым сайтом сообщества (на основе PHP), насчитывающим около 100 пользователей, и одна из реализованных нами функций - это ajax shoutbox, который работает как «чат» на главной странице сайта, когда пользователи входятКоманда разработчиков использует частный irc-сервер для совместной работы, и на одном канале мы запускаем викторину.Мы предложили создать веб-интерфейс для подключения к irc через наш сайт, чтобы все (не разбирающиеся в технологиях) пользователи нашего сайта могли участвовать в наших irc-викторинах.

Теперь я не эксперт IRC, но я изучил несколько учебных пособий по PHP-IRC, и мне кажется, что для подключения к IRC PHP необходимо поддерживать открытое соединение ..Это означает, что нам нужно сделать комет-трюк и позволить PHP-скрипту выполняться без задержки.Однако это означает, что если пользователь уходит со страницы или закрывает вкладку, мы теряем контроль над выполнением этого php.Возможно, мы могли бы найти способ прекратить соединение, если это произойдет, но даже в этом случае пользователю придется повторно подключаться к irc, если он переходит обратно в чат.быть постоянно подключенным к серверу irc, даже если они не вошли на сайт.У всех разработчиков есть учетные записи на одном из наших серверов, и мы используем screen и irssi, чтобы оставаться на связи.Я полагаю, что каким-то образом можно подключить php-скрипт к irc через учетную запись оболочки, которая всегда подключена к irc.Из-за нашего ограниченного числа пользователей, это не проблема для установки оболочек для всех из них, но я еще не выяснил отсутствующую ссылку - клиент irc командной строки, который каким-то образом разрешает доступ php.

У кого-нибудь есть предложения?

1 Ответ

1 голос
/ 13 августа 2010

Одним из вариантов будет запуск BNC , в основном прокси, который будет поддерживать соединения с IRC-сервером, и ваш PHP-скрипт может подключаться к нему, когда это необходимо. Вам необходимо настроить способ идентификации сеанса PHP пользователя с программным обеспечением BNC, установить тайм-ауты сеансов и т. Д., Которые будут зависеть от используемого вами конкретного программного обеспечения и его доступных параметров.

В качестве альтернативы было бы не так сложно написать прокси специального назначения, скажем, на Python или что-то, что поддерживало бы список IRC-соединений для PHP-сессий.

Вам также может не потребоваться одно соединение IRC на сеанс PHP, поскольку одно постоянное соединение с ботом на канале IRC может легко включать имя пользователя в каждое сообщение, идентифицирующее пользователя PHP, который его отправил.

...