В реальном времени и php? - PullRequest
       108

В реальном времени и php?

7 голосов
/ 19 августа 2011

Я новичок в приложениях реального времени (например, Chat, MMORPG), но я хорошо разбираюсь в php и ajax.Я запрограммировал чат с использованием php и ajax (интервал 1000 мс). После этого мой сайт стал очень тяжелым из-за большой нагрузки на сервер !!

Я хочу получить информацию о снижении нагрузки на сервер.

заранее спасибо

Ответы [ 8 ]

2 голосов
/ 01 июля 2014

Смотрите не дальше, чем PubNub!

Клиентские библиотеки PHP доступны на https://github.com/pubnub/php (включая композитора)

и более 50 (включая javascript) можно найти здесь: http://www.pubnub.com/developers/

Проверьте, имеете ли вы право на бесплатный план: http://www.pubnub.com/free-evangelism-program/

1 голос
/ 04 мая 2015

Насколько мне известно, есть несколько библиотек для создания неблокирующих приложений и приложений реального времени, таких как чат и игра в реальном времени.но в последнее время разработка кажется не очень активной.

Skyray, сетевая библиотека для PHP, написанная на C http://github.com/SkyrayLabs/Skyray

Это сетевая библиотека для PHP, созданная мной, он все еще находится в активной разработке.

swoole, https://github.com/swoole/swoole-src

phpdaemon, https://github.com/kakserpom/phpdaemon
1 голос
/ 22 мая 2013

Интересная библиотека PHP, предоставляющая разработчикам инструменты для создания двунаправленных приложений в реальном времени между клиентами и серверами через WebSockets: http://socketo.me/

1 голос
/ 19 августа 2011

Вы можете кэшировать результаты. Настройка кэша memcached (key => value) может снизить нагрузку на базу данных.

Когда приходит новый запрос, пусть ваше приложение спросит memcache, находится ли значение, которое он ищет, в кеше. В противном случае запросите значение в ядре базы данных, верните значение пользователю и кешируйте его в следующий раз.

1 голос
/ 19 августа 2011

Вы можете попробовать преобразовать чат в основанное на сокете веб-приложение. Я не знаю о различиях в производительности между использованием AJAX или использованием сокетов, но мое использование сокетов для этого звучит для меня более логично. :)

1 голос
/ 19 августа 2011

Ищите длинный опрос ajax

Он запрашивает только один раз в минуту (запросы не 60 / минута, а 1 / минута)

0 голосов
/ 14 апреля 2019

Даже вопрос старый, я хотел бы поделиться с вами тем, что нашел.

WebSockets теперь поддерживается всеми основными браузерами. Таким образом, самый простой способ создать систему в реальном времени - использовать WebSockets. Но PHP по умолчанию не поддерживает WebSockets.

Но есть Node.JS, чтобы упростить задачу. Нужно ли перепрограммировать мой сайт в Node.JS? Нет! Я нашел более разумное решение, которое помогает вам использовать Node.js вместе с PHP только для связи в реальном времени.

Как это работает?

  1. Пользователь подключается к серверу WebSocket, написанному в Node.js
  2. Когда у нас есть уведомление или обновление в PHP, мы уведомляем сервер Node.js через запрос HTTP POST
  3. Node.js HTTP-сервер обрабатывает запрос и отправляет ответ подключенным пользователям через WebSockets.

См. Создание приложения чата в реальном времени с PHP и Node.js для примера.

0 голосов
/ 19 августа 2011

Вы также можете взглянуть на движок ajax для потоковой передачи данных в реальном времени (они утверждают, что он действительно хорошо масштабируется). http://www.ape -project.org /

...