HTTP-потоковая передача / длинный опрос / веб-сокеты вместо опроса
Когда вам нужна информация в реальном времени, вам следует избегать опроса (часто).Ниже я бы попытался объяснить, почему это не так.Вы могли бы сравнить это с ребенком в задней части вашего автомобиля, который каждую секунду кричал «мы еще здесь», а вы отвечаете «мы еще не здесь» все время.
Вместо этого вы хотели бы что-то иметьнапример, длинный опрос / HTTP-поток или веб-сокеты.Вы можете сравнить это с ребенком на заднем сиденье вашего автомобиля, который скажет вам сообщить ему, когда «мы там», вместо того, чтобы спрашивать нас каждую секунду.Вы можете представить, что это намного эффективнее, чем в предыдущем примере.
Если честно, я не думаю, что PHP является подходящим инструментом для такого рода приложений (пока).Доступны следующие варианты:
размещенные решения:
http://pusherapp.com:
Pusher является хостомAPI для быстрого, простого и безопасного добавления масштабируемой функциональности в реальном времени с помощью WebSockets к веб-приложениям и мобильным приложениям.
Наш бесплатный тарифный план Sandbox включает до 20 подключений и 100 000 сообщений в день.Просто перейдите на платный тарифный план, когда будете готовы.
http://beaconpush.com/
Beaconpush - это push-сервис для создания веб-сайтов в реальном времениприложения, использующие HTML5 WebSockets и Comet.
хост для себя:
http://socket.io:
Socket.IO стремится сделать приложения реального времени возможными в каждом браузере и мобильном устройстве, стирая различия между различными транспортными механизмами
Становясь оченьВ общем, решение "сам себе" обойдется дешевле, но, с другой стороны, использование чего-то вроде pusherapp поможет вам легче начать (дружественный API), а также не так уж и дорого.Например, «Bootstrap» от pusherapp может иметь 100 одновременных подключений и 200 000 сообщений в день по 19 долларов в месяц (но когда небольшой beaconpush дешевле => делайте математику :)).В качестве дополнительного примечания этот план не включает SSL, поэтому его нельзя использовать для конфиденциальных данных.Я полагаю, что выделенный компьютер (VPS) обойдется вам примерно в ту же сумму денег (для простого веб-сайта), и вам также придется самостоятельно управлять потоковым решением, но при его увеличении это, вероятно, намного привлекательнее.
Память вместо диска
всякий раз, когда пользователь щелкает по нему, поле базы данных MySQL обновляется и значение отображается для пользователя
При сравнении дискаВвод / вывод (MySQL в стандартном режиме) в память крайне медленный.Вы должны использовать базу данных в памяти, например, redis (также имеет постоянные снимки) или memcached (полностью в памяти), чтобы ускорить процесс.Я сам очень люблю redis за его безумную скорость, простоту и постоянные снимки.http://redistogo.com/ предлагает бесплатный тариф с 5 МБ памяти, который, вероятно, покроет ваши потребности.Если нет, то мини-план в 5 долларов в месяц, вероятно, покроет вас, но при увеличении VPS будет дешевле, и, на мой взгляд, предпочтительное решение.
Лучшее решение
Лучшее решение (особенно если вы становитесь большим) - это самостоятельно разместить socket.io/redis с помощью VPS (стоит денег).Если бы я был действительно маленьким, я бы использовал Redistogo, если бы я не был хозяином сам.Я также начал бы использовать что-то вроде beaconpush / pusherapp из-за его простоты (начав немедленно).Хостинг socket.io (совет поиграть с ним на собственной машине, когда вы становитесь большим) довольно прост, но, на мой взгляд, сложнее, чем beaconpush / pusherapp.