Когда использовать постоянный коннект ?

tukaev

Новичок
В распространенном в интернете примере создания чата с использованием ajax (ссылка )
каждые 2 секунды через jquery происходит обращение к серверу, где каждый раз происходит коннект с целью проверки на новые сообщения в чате. Даже при небольшом (и тем более при большом) количестве пользователей возникает вопрос: а не лучше ли открыть сессию и закрывать ее при разлогировании. Это возможно?
Если “ДА”, то как?
Если “НЕТ”, то почему? (Принципы взаимодействия браузера и сервера, генерация html посредством php, мне понятны. и А вот с mysql_pconnect я не разобрался. Как работает? Я правильно понял, что она открывает сессию? )
 

MiksIr

miksir@home:~$
Код:
клиент (браузер) -------- php скрипт ------------ база
                     ^                     ^
               тут запросы          тут mysql_(p)connect
                через ajax
А теперь сформулируйте свой вопрос еще раз.
 

fixxxer

К.О.
Партнер клуба
Какая каша в голове, это п-ц. Я даже не знаю что тут сказать.
 

tukaev

Новичок
Код:
клиент (браузер) -------- php скрипт ------------ база
                     ^                     ^
               тут запросы          тут mysql_(p)connect
                через ajax
А теперь сформулируйте свой вопрос еще раз.
Возможен ли один вызов mysql_(p)connect при многократном обращении клиента к php скрипту через запросы ajax?
 

tz-lom

Продвинутый новичок
tukaev
для начала возьми и сам найди информацию о AJAX и COMET , вариантов реализации дивное множество
и незабудь узнать когда именно выполняется PHP скрипт
твоя задача весьма не проста,а базовых знаний у тебя явно не хватает
 

tukaev

Новичок
tukaev
для начала возьми и сам найди информацию о AJAX и COMET , вариантов реализации дивное множество
и незабудь узнать когда именно выполняется PHP скрипт
твоя задача весьма не проста,а базовых знаний у тебя явно не хватает
Спасибо, отличное направления для ответов на мои вопросы )
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
ВОЗМОЖНО

ну правда возможно ведь, простите за черный юмор
 

sshp

Новичок
Возможен ли один вызов mysql_(p)connect при многократном обращении клиента к php скрипту через запросы ajax?
PHP-скрипт умирает после выполнения.
А запускается при вызове. (При первом = единственном вызове).
Даже если ты сделаешь так, чтоб выполнение скрипта никогда не заканчивалось, то сам php-парсер выключится через время = max_execution_time (обычно 30 секунд) (+время на системные вызовы, запросы к БД и т.п. [если php не под Windows]).
( ссылка в документацию)
И даже если ты очень сильно увеличишь max_execution_time с помощью функции set_time_limit() [или через настройки php],
то тогда сервер прихлопнет php-парсер через какое-то своё "максимальное" время на выполнение PHP (обычно 300 секунд, т. е. 5 минут.).
А если ты настроишь сервер на очень большие временные лимиты, то... твой сервер (компьютер) повиснет при увеличении пользователей.
(Не знаю, может быть операционная система тоже прервёт IP-соединение через какое-то время).

Короче, от того, что скрипт будет всё время работать, производительность системы только пострадает, а не выиграет от того, что типа "не надо много раз соединение с базой открывать".
(и тем более при большом) количестве пользователей
И тем более при большом количестве пользователей ;)).


Вот, ну это в целом про "задумку". А если конкретно на вопрос "Возможен ли один вызов mysql_(p)connect при многократном обращении клиента к php скрипту",
то напрямую НЕ возможен, т.к. новое обращение клиента вызовет новый процесс/поток, который ничего не знает про другой, ранее запустившийся процесс/поток.
Если как-то опосредованно делать -- типа чтоб запрос клиента где-то сохранялся, а неумирающий скрипт периодически лазил в то место и проверял, нет ли ему "почты", то может быть и можно,
но процесс записи куда-то этих запросов для дальнейшей обработки основным скриптом -- это опять расходы ресурсов,
ничем не лучше (в случае этого ajax-чата) нормальной обычной обработки запросов.

Вот как-то так. Может что путано написал, сорри, некогда отшлифовывать сообщение.
 

craz

Нестандартное звание
забег лемингов на phpclub.ru блин - это те которые сессию не здали, или те кто на рабоу устроился после универа?
 

Xupypr

Новичок
для тех кто трафик бережет
mysql_pconnect() работает очень похоже на mysql_connect(), с двумя отличиями.

Во-первых, при соединении функция пытается сначала найти (постоянную) ссылку, уже открытую с теми же host, username и password. Если он найдена, возвращается её идентификатор вместо открытия нового соединения.

Во-вторых, соединение с SQL-сервером не закрывается по окончании выполнения скрипта. Ссылка остаётся открытой для последующего использования (mysql_close() не закрывает ссылки, установленные функцией mysql_pconnect()).

Ссылки этого типа называются поэтому 'persistent/постоянные'.
 

fixxxer

К.О.
Партнер клуба
В-третьих, к pconnect в качестве бесплатного бонуса прилагается вагон граблей.

Но ТС это все не поможет. Ему надо для начала браузер от сервера отличать научиться.
 

Xupypr

Новичок
В-третьих, к pconnect в качестве бесплатного бонуса прилагается вагон граблей.

Но ТС это все не поможет. Ему надо для начала браузер от сервера отличать научиться.
а можно про вагон граблей поподробнее? а то активно использую на проекте с большой посещаемостью, вроде ничего такого не заметил, работает много лучше обычного.
 
Сверху