Войти

Показать полную графическую версию : [решено] Запуск php скрипта в потоке или что то вроде?


BASSON_XVI
23-07-2009, 02:41
Добрового всем!
Вообщем ситуация такая есть классы для работы с xmpp (jabber протокол).
Соответственно что бы быть в онлайне нужно в цикле получать/отправлять данные на/от сервера.
Написал оберточку для этих классов и прикрутил xajax.
Связывается обертка со скриптом где запущен цикл через mysql(в смысле в таблицы складываются присланные сообщение аяксом читаются и на дисплей выводятся и на оборот) и сессию.
Так вот встает вопрос как на сервере с помощью того же xajax запускать этот скрипт с циклом так что бы цикл не прекращался а вот обратно ответ приходил что мол все ок соединились?
То есть я могу отправив запрос на сервер получить ответ до завершения скрипта (тоесть что бы цикл работал и я был в онлайне в jabber`e)??
Ну или как это можно немножко по другому реализовать?
П.с. сижу над кодом уже часов 15, если что тупо написал извените задолбался так что пл часа искал как начать новую тему :).
Жду от вас ответов, за ранее спасибо!

Sham
23-07-2009, 03:17
window.setInterval (https://developer.mozilla.org/en/DOM/window.setInterval) - можно делать периодический запрос к скрипту...

BASSON_XVI
23-07-2009, 12:16
Не то... Прервешь цикл оборвется связь с сервером джаббера (поток вроде закроется) и все ты в офлайне и надо заново проходить авторизацию. :(

Sham
23-07-2009, 17:01
роль xmpp-клиента у вас должен выполнять php-скрипт (он взаимодействует с jabber-сервером), а браузер взаимодействует только со скриптом/базой... те имхо браузер никак не должен влиять на серверного jabber-клиента, а только обмениваться инфой... причем это должны быть два разных функционала: один отвечает на запросы браузера, а другой выполняет роль jabber-клиента (и клиент должен слушать другой порт, с другими настройками виртуального серва и тд)...
т.е. имхо надо в консерватории что-то подправить...

BASSON_XVI
24-07-2009, 20:15
:drug: Curl рулит!

Sham
24-07-2009, 21:06
BASSON_XVI, рулят любые функции работы с сокетами...

BASSON_XVI
25-07-2009, 03:11
Sham, Какой же ты умный... я вот только сейчас допер :)! Спасибо что помог!

Может это и не правильно но не хочу разводить тем.
У меня есть div в нем время от времени изменяется содержимое. Так вот как нибудь можно повешать функцию на событие изменения содержимого? И есть ли оно такое событие?

И еще один вопрос касающийся sql запросов.
Как мне одним sql запросом удалять все записи кроме последних 20 с учотом поля time в котором записано время в формате unix?

Sham
25-07-2009, 04:53
И есть ли оно такое событие? »
на div нельзя повесить onchange (у него нет такого события), надо смотреть функцию, которая меняет...
Как мне одним sql запросом удалять все записи кроме последних 20 с учотом поля time в котором записано время в формате unix? »
одним вроде бы не получится (, только с предварительным подсчетом строк в таблице, или при вставке строк удалять столько же первых по времени... (LIMIT в DELETE не имеет возможностей как в SELECT)

BASSON_XVI
27-07-2009, 05:43
Опять же не хочу плодить тем из за пустяков.
Суть проблемы в том что когда я пытаюсь получить v-card(информацию о клиенте с бинарными данными аватарки) из потока (который я читаю по 2048 байт) то бинарные данные читаюстся в циклце во временную переменую размером в 2048 байт дальше я пытаюсь добавить их в другую переменную $xml.=$line; но добавляется в $xml только первые 2048 байт спервого прохода цикла а дальше как ни странно данные вида nZeY9VXc9n05NZw6xFShvraxf из переменной $line в $xml не добавляются. Вопрос что делать и почему так? :)




© OSzone.net 2001-2012