Показать полную графическую версию : Общение между AutoIt и PHP
morgan1991
24-11-2010, 19:01
Здравствуйте!
Нужно очень часто получать, средствами AutoIt, данные с сервера.
Проблема в том, чтоб как можно меньже загружать интернет соединение и ЦП компьютера клиента, а также экономя как можно больше времени, используя AutoIt и PHP на сервере.
Какждый раз при получении данных подключаться к серверу, мне кажется не вариант, т.к. это очень долго и мучительно, теряются секунды.
Держать постоянное соединение с PHP, невозможно чисто физически.
На сервере имеется !только PHP, в связи с чем огромная просьба не предлагать поставить какой либо софт или библиотеку для PHP или веб сервера.
Жду вашей помощи.
morgan1991
25-11-2010, 16:21
Хоть какиенибудь мысли, хоть ктонибудь...
UP
Какждый раз при получении данных подключаться к серверу, мне кажется не вариант »
А каким образом, вы собираетесь тогда получить эти данные?
Как вариант, можно заставить PHP скрипт на сервере отсылать обновлённые данные клиенту. Но без соединения с сервером, боюсь невозможно.
morgan1991
25-11-2010, 21:50
А каким образом, вы собираетесь тогда получить эти данные? »
Я имел ввиду не подключаться каждые две секунды, а если один раз подключиться и потом получать постоянно данные, тогда норм.
Но как это сделать?
Я имел ввиду не подключаться каждые две секунды, а если один раз подключиться и потом получать постоянно данные »
Такой технологии пока ещё нет (если ошибаюсь, поправьте).
Любая программа работает по принципу вопрос/ответ, и имеет параметры условие, цикл и производные.
Мы кстати тоже общаемся по принципу вопрос/ответ :)
Поэтому, как ни крути, а чтобы получить данные нужно послать запрос серверу.
Фактически, при подключении к серверу вы его спрашиваете - "готов передать данные?"
На что сервер вам отвечает - "да я готов передать вам данные: код готовности" или "нет, я не готов: код ошибки"
Далее, в случае 200 Ок (код успешного соединения) вы "говорите" скрипту weather.php дайка мне погоду на 25.11.2010
Сервер, в свою очередь запустит скрипт, и тот вернёт вам в случае успеха погоду на 25.11.2010.
Вот тут немного внимания!!! Мы фактически не отключаемся от сервера, но для получения новой порции данных мы снова должны сделать запрос к серверу!
Проблема в том, чтоб как можно меньже загружать интернет соединение и ЦП компьютера клиента »
Тут нужно просто грамотно написать скрипт!
а также экономя как можно больше времени »
Получать данные порциями (к примеру, через каждые 30 мин.)
P.S. Если вы хотите написать online игру то тут уже давно всё апробировано, просто почитайте материал по написанию игр!
morgan1991
26-11-2010, 09:13
Получать данные порциями (к примеру, через каждые 30 мин.) »
:) нужно каждую секунду.
P.S. Если вы хотите написать online игру то тут уже давно всё апробировано, просто почитайте материал по написанию игр! »
Нет, нужно чтото типо чата, переписки между двумя людьми.
Напрямую соедениться не подходит, ставить сервер тоже.
А вот через PHP норм.
Нет, нужно чтото типо чата, переписки между двумя людьми.
Напрямую соедениться не подходит, ставить сервер тоже.
А вот через PHP норм. »
Ну вот теперь хоть понятно о чём речь :)
нужно каждую секунду. »
Для вашей цели не вижу смысла!
Собственно (вкратце) алгоритм следующий:
Autoit.
Пишем клиентское приложения Messenger. По сути, это будет простенький клиент/сервер.
PHP.
Пишем скрипт, который при получение данных от Messenger ID[1...N] будет отсылать их на Messenger ID[1...N].
Скрипт должен уметь:
1. идентифицировать пользователя по ID[1...N]
2. принимать/отсылать данные пользователю
Протокол (примерно) такой: ID[1...N]:DATA <-> PHP <-> ID[1...N]:DATA
P.S. А, почему бы вам не воспользоваться готовыми протоколам, к примеру Jabber (XMPP).
Напрямую соедениться не подходит »
В чём причина, если не секрет?
morgan1991
27-11-2010, 01:22
В чём причина, если не секрет? »
Дешовый веб сервер/хостинг... :(
Собственно (вкратце) алгоритм следующий: »
В принципе я так и хотел сделать, но проблема в том, что повторное подключение к серверу занимает бывает до 5 секунд.Вот тут немного внимания!!! Мы фактически не отключаемся от сервера, но для получения новой порции данных мы снова должны сделать запрос к серверу! »
Это если передать в заголовке connection: keep-alive, но с таким методом у меня проблемка есть, никак не могу отловить конец передачи данных, а если ставлю connection: close, тогда принимаю данные пока не оборвётся соединение...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.