[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: php и real-time приложение (сайт)
max_never
Кто знаком с real-time приложениями - прошу помощи. Все локально - на wamp сервере. Есть сайт - работает прекрасно - хочу получать мгновенные обновления (как в вк - кто-то что-то сделал на вашей странице - мгновенное оповещение). Написал (переписал) сервер для подобной штуки - проверил на примере чата - работает. Приклеил этот сервер к своему сайту - работает так: в страницу вставил iframe - в нем весь клиент для работы с моим "писанным" сервером. При загрузке iframe идет ajax connect к серверу - если удачно - запускается прослушка событий с сервера (на серве 30 секундный непрерывный цикл) - с чатом все работало! Запустил на сайте - тоже работает - НО любое действие на сайте (требующее обращение к серву - хоть ajax, хоть не ajax) зависают пока крутится фоновый цикл - хотя слушаю сервер я ифреймом через ajax! Как так, как исправить?
Как сделать работу с сайтом и прослушивание сервера независимыми и асинхронными?
RCuPeR
Это вы Ajax-polling организовали.
У меня была подбная проблема (разрабатывали сервис очень похожий на "диалоги" в ВК), решил отказаться от всех этих ajax-костылей в пользу Node.JS и Socket.IO в качестве транспорта.

Приложение отлично работает. Использую:
Php - как основной сервер
MySQL - основаня БД
Node.js - обработка Real-time соединений.
dNode - связь Php-Node.js.
Socket.IO - свзять Node.js-client.
MongoDB - хранения информации используемой непосредственно Real-time приложением.

_____________
Гнусный социопат с комплексом Бога.
Aeq
сессии используете?
max_never
Неа
Aeq
в XMLHttpRequest метод open третий аргумент async в true?
Aeq
а вообще проверьте настройки на сервере, может там автостарт сессий включен? huh.gif
max_never
Async в true, а чем может сессия навредить я что-то не пойму?)
max_never
session.auto_start off так же
Aeq
сессия лочит файл, и другие запросы с этой же сессией ждут пока он не разлочится.
Aeq
еще у браузеров последнее время такая фигня что на 1 адрес не шлют сразу несколько запросов, только последовательно шлют. можете сами проверить простой скрипт:
sleep(5);
echo rand(0, 999);

откройте в трех вкладках одновременно этот скрипт, увидите что вкладки будут последовательно по 5 сек простаивать.
лечится добавлением к адресу чего-нить уникального
test.php?1
test.php?2
test.php?3

с такими адресами вкладки уже параллельно прогрузятся
Aeq
не знаю насколько это в вашем случае актуально. но мало ли )
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.