Intereting Posts
Нужна помощь для хранения флажка, переключателя и выпадающих меню в mysql PHP включает / требует внутри функции Форма Ajax не может предотвратить перезагрузку страницы с помощью event.preventDefault (); Создание случайного шестнадцатеричного цветового кода с помощью PHP Как присоединиться к таблицам в Zend при использовании класса, который наследуется от Zend_Db_Table_Row_Abstract? Удалить диакритические символы из строки WooCommerce Multi Select для отдельного поля продукта Разница между row_array и result_array Как объединить тесты модулей модуля / приложения ZF2 в один вызов? Кто-нибудь, у кого проблемы с диаграммами Google в XAMPP? синхронизировать базу данных Microsoft Access с базой данных сайта Silverstripe Stripe – PHP Неустранимая ошибка: Class 'Stripe \ Charge' не найден Как изменить цвета вывода xdebug? Как отображать содержимое одного сайта в другом с помощью PHP? Несколько загрузок файлов Laravel 5.3

Интеграция Node.js с Symfony2 или PHP

Я разрабатываю веб-приложение с Symfony2. Мне нужно создать push-уведомления sysmte (например, Facebook). Когда пользователь публикует что-то, мне нужно, чтобы некоторые из других пользователей получили уведомление.

Я видел, что Node.js это самый простой способ сделать это. Но я сделал несколько простых примеров, и все работает нормально, но я не знаю, как интегрировать это приложение node.js с моим приложением Symfony2 или действительно с помощью PHP-приложения.

Кто-нибудь может мне помочь?

Заранее спасибо!

Обратите внимание, что вы не указали достаточно подробностей, поэтому я буду отвечать в качестве стороннего разработчика, а не как разработчика мобильных приложений

Интеграция NodeJS и PHP (в общем) не является хорошим способом, так как вам нужно разблокировать оба сервера отдельно, создать сервер веб-сервера в JS, пока ваше приложение находится на PHP, и, наконец, создать запрос (GET или POST) с вашего PHP на вас JS сервер. Ну, большой беспорядок, поэтому я буду раскрывать свое решение здесь.

Быстрая информация для мобильных приложений. Ну, технически, нет простого способа. Вы можете использовать Push-протокол ( http://www.wikiwand.com/en/Push_technology ) с NotificationPusher ( https://github.com/Ph3nol/NotificationPusher ). Я не использовал его раньше, поэтому я не могу с этим поделать.

В целом. Большую часть времени, когда люди думают о Push, длинный опрос сделает трюк. Для начала это означает, что запрос сделан на стороне клиента, и сервер не отправляет данные и закрывает соединение, пока не появятся новые данные.

Как вы это реализуете?!? В принципе, вы изменяете max_execution_time с помощью ini_set или set_time_limit в течение очень долгого времени для текущего скрипта и запускаете цикл (например, do..while) со сном и проверку на свои данные внутри. Из вашего Javascript просто сделайте вызов Ajax, например, с помощью jquery: $ .get. Просто не забудьте удалить тайм-аут и остаться в асинхронном режиме.

Единственным недостатком этого решения является то, что у вас всегда будет соединение, открытое на вашем сервере, которое будет потреблять немного больше батареи на мобильном устройстве. Если у вас есть несколько типов данных для приема, не стесняйтесь объединять вызовы и публиковать тип в ваших данных ответа, так как большинство браузеров допускают только 2 или 3 одновременных подключения к одному и тому же серверу.

Мне кажется, что вы описываете WebSockets.

Взгляните на Socket.io, его модуль для node.js.

Также есть пример в GitHub https://github.com/Automattic/socket.io/tree/master/examples/chat

Интересными файлами для вас должны быть index.js и public / main.js.

Вы можете увидеть пример в прямом эфире по адресу http://socket.io/demos/chat/