Я хотел бы создать API для проекта, над которым я работаю, позволяя разработчикам создавать настольные и мобильные приложения, основанные на его функциональности. Одна вещь, которую я всегда хотел узнать, как это сделать, это создать систему push-уведомлений без сохранения состояния, подобную потоковому API Twitter.
По сути, я хочу иметь возможность уведомлять пользователей о любых изменениях данных в режиме реального времени или как можно ближе к ним. Я знаю, что это может быть сложно на мобильных устройствах, поэтому мобильные приложения, вероятно, будут создаваться для периодической проверки обновлений, чтобы сэкономить заряд батареи. Однако настольные приложения не будут иметь этого ограничения. Я бы не хотел, чтобы приложение спрашивало сервер, есть ли новая информация, и вместо этого позвольте серверу сообщить приложению, что есть новые данные.
Мой язык программирования - PHP, а мой сервер - Apache. Если бы мне было абсолютно необходимо, я мог бы переключиться на Lighttpd или nginx, но это абсолютное последнее средство, поскольку это потребовало бы большого количества изменений во всем моем существующем коде.
Я читал эту статью:
http://www.zeitoun.net/articles/comet_and_php/start
И проверил это, но, к сожалению, все, что происходит, это то, что мой браузер пытается загрузить страницу и фактически не отображает время. Я подозреваю, что это связано с тем, что по какой-то причине я никогда не смог заставить буферизацию вывода работать на моем сервере, если я не отправляю 64 КБ (или больше) данных. Я слышал, что мне пришлось отключить gzip, что я и сделал, и он все еще не работал, поэтому я не знаю.