![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: 3 Всего: 6 |
есть демон на перле... постоянно висит и по мере появления новых сообщений в БД рассылает их через сокеты пользователям....
подскажите плиз, как реализовать на пхп постоянную связь с демоном без цикла? |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
Никак. Пхп это не тот язык где есть подобие onData
|
|||
|
||||
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: 3 Всего: 6 |
как-то же делают чаты......
|
|||
|
||||
| Nigel |
|
|||
|
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: 7 Всего: 19 |
делают. Вешают таймуауты и раз в n секунд снимают данные, но в любом случае это не realtime в привычном его понимании.
|
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
Nigel, либо ифрейм который постоянно грузиться. в нём бесконечный цикл с паузой допустим 0.1 секунды, и каждый раз проверяется мускул на наличие новых сообщений)
|
|||
|
||||
| awers |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1465 Регистрация: 22.3.2006 Где: Россия, Таганрог Репутация: 21 Всего: 31 |
Ajax не решает проблему?
|
|||
|
||||
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: 3 Всего: 6 |
все это хорошо,ajax, iframe, refresh etc... но нафиг тогда демонов пишут)))
у меня был чат нормальный с дозагрузкой новых сообщений... но для каждого пользователя запускать почти что бесконечный цыкл - сервер сдохнет)) есть чаты с демоном... открывает сокет для каждого подключения и выстравивает в этот сокет новые сообщения, а пхп скрипт забирает их и передает пользователю... вот как без цикла реализовать постоянное подключение к сокету - не догоняю!!! хоть и чаты уже в прошлом.. но мне эта реализация нужна для других целей... |
|||
|
||||
| Валерия |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 598 Регистрация: 10.3.2007 Репутация: 3 Всего: 8 |
Это и есть можно сказать аджакс, только без HTTPrequest а через фрейм.
Который постоянно грузится.. |
|||
|
||||
| theworldcreator |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Я честно сказать не совсем понимаю. У вас демон рассылающий сообщения, так? Есть пользователи, эти сообщения принимающие, так?
А зачем между ними пихать некий php скрипт который будет постоянно получать данные? Что он с ними будет делать?
Я так понимаю вам нужно что то вроде прерываний? Нет, насколько я знаю такого нету, только цикл. Но вначале цикла можно вызывать sleep(), дабы все ресурсы не отдавать скрипту. |
|||
|
||||
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: 3 Всего: 6 |
я так понимаю при любом раскладе "refresh" сохраняется??? верно.. так и есть... демон рассылает собщения, пхп скрипт "верстает" и показывает посетителю.... думаю вместо цикла со sleep() реализовать рефреш...... так серверу намного будет легче))) |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
DeamonShan,
Ну а сам php из базы не может новые сообщения прочитать? Какая-то длинная цепочка получается -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| theworldcreator |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Я бы на вашем месте(при соответствующем доступе) верстал бы в Perl, исключив из цепочки php скрипт.
При достаточном уровне программиста цикл будет быстрее, при наличие достаточно ресурсоемкой инициализации. То-есть в цикле вы один раз сокет будете создавать, может быть БД открывать, может генератор случайных чисел инициализировать, что еще предполагается, а в случае refresh при каждом запуске. Собственно теряется весь смысл демона и исключить из цепочки придется его. |
|||
|
||||
| DeamonShan |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: 3 Всего: 6 |
конечно может... но цель у меня не чат... хотя и тут можно без демона обойтись.
я на перле не умею прогать, хотя и простенькие пишу... у меня весь сайт на пхп... )) кроме демона) думал вообще на Сях написать его... абсолютно с вами согласен!!! Присутствие в цепочке демона, исключает пхп скрипты коннектиться к БД.... - и это есть цель.... Это сообщение отредактировал(а) DeamonShan - 23.12.2008, 09:42 |
||||
|
|||||
| theworldcreator |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
mysql_Pconnect |
|||
|
||||
| DeamonShan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 503 Регистрация: 26.11.2005 Репутация: 3 Всего: 6 |
theworldcreator, с pconnect-м я знаком...одно дело одна программа постоянно соединена с БД, другое когда 100 пользователей устанавливают.. ведь pconnet на сколько я понимаю его, соединяет только одного юзера... я ошибаюсь? я не исключаю, что одно соединение может использоваться несколькими скриптами, но маловероятно... точнее я не знаю этого)_
в любом случае, если 100 пользователей получают сообщения по средством прямого соединения пхп скрипта, каждый посылает запрос к БД... а демон всего лишь один раз...то есть одно сообщение может быть вытянуто из таблицы один раз, а не столько, сколько пользователей Это сообщение отредактировал(а) DeamonShan - 23.12.2008, 23:27 |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |