Войти

Показать полную графическую версию : Общение между AutoIt и PHP


morgan1991
24-11-2010, 19:01
Здравствуйте!
Нужно очень часто получать, средствами AutoIt, данные с сервера.
Проблема в том, чтоб как можно меньже загружать интернет соединение и ЦП компьютера клиента, а также экономя как можно больше времени, используя AutoIt и PHP на сервере.
Какждый раз при получении данных подключаться к серверу, мне кажется не вариант, т.к. это очень долго и мучительно, теряются секунды.
Держать постоянное соединение с PHP, невозможно чисто физически.
На сервере имеется !только PHP, в связи с чем огромная просьба не предлагать поставить какой либо софт или библиотеку для PHP или веб сервера.
Жду вашей помощи.

morgan1991
25-11-2010, 16:21
Хоть какиенибудь мысли, хоть ктонибудь...
UP

Garrett
25-11-2010, 21:39
Какждый раз при получении данных подключаться к серверу, мне кажется не вариант »
А каким образом, вы собираетесь тогда получить эти данные?

Как вариант, можно заставить PHP скрипт на сервере отсылать обновлённые данные клиенту. Но без соединения с сервером, боюсь невозможно.

morgan1991
25-11-2010, 21:50
А каким образом, вы собираетесь тогда получить эти данные? »
Я имел ввиду не подключаться каждые две секунды, а если один раз подключиться и потом получать постоянно данные, тогда норм.
Но как это сделать?

Garrett
26-11-2010, 00:22
Я имел ввиду не подключаться каждые две секунды, а если один раз подключиться и потом получать постоянно данные »
Такой технологии пока ещё нет (если ошибаюсь, поправьте).
Любая программа работает по принципу вопрос/ответ, и имеет параметры условие, цикл и производные.
Мы кстати тоже общаемся по принципу вопрос/ответ :)
Поэтому, как ни крути, а чтобы получить данные нужно послать запрос серверу.

Фактически, при подключении к серверу вы его спрашиваете - "готов передать данные?"
На что сервер вам отвечает - "да я готов передать вам данные: код готовности" или "нет, я не готов: код ошибки"
Далее, в случае 200 Ок (код успешного соединения) вы "говорите" скрипту weather.php дайка мне погоду на 25.11.2010
Сервер, в свою очередь запустит скрипт, и тот вернёт вам в случае успеха погоду на 25.11.2010.
Вот тут немного внимания!!! Мы фактически не отключаемся от сервера, но для получения новой порции данных мы снова должны сделать запрос к серверу!

Проблема в том, чтоб как можно меньже загружать интернет соединение и ЦП компьютера клиента »

Тут нужно просто грамотно написать скрипт!

а также экономя как можно больше времени »


Получать данные порциями (к примеру, через каждые 30 мин.)

P.S. Если вы хотите написать online игру то тут уже давно всё апробировано, просто почитайте материал по написанию игр!

morgan1991
26-11-2010, 09:13
Получать данные порциями (к примеру, через каждые 30 мин.) »
:) нужно каждую секунду.
P.S. Если вы хотите написать online игру то тут уже давно всё апробировано, просто почитайте материал по написанию игр! »
Нет, нужно чтото типо чата, переписки между двумя людьми.
Напрямую соедениться не подходит, ставить сервер тоже.
А вот через PHP норм.

Garrett
26-11-2010, 17:33
Нет, нужно чтото типо чата, переписки между двумя людьми.
Напрямую соедениться не подходит, ставить сервер тоже.
А вот через 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