Вы здесь

Несколько вопросов по использованию NodeJS в Drupal-проектах.

0

Добрый день.

В недавних вопросах на данном сайте была поднята тема использования NodeJS совместно с Drupal-проектом.
И хотелось бы прояснить некоторые вещи, так как лично я с NodeJS ранее не работал.

  1. Какие это дает преимущества ? Насколько мне удалось прояснить, в этом случае сервер с помощью NodeJS может отправлять сообщения клиентам, что облегчает взаимодействие. То есть, клиенту не нужно с помощью таймера постоянно обращаться к серверу, а достаточно просто обрабатывать сообщения от сервера. Если я, конечно, правильно понял. Или есть и другие преимущества ?

  2. Такая связка возможна лишь на VPS и выделенных серверах, или также это реально настроить и на виртуальном хостинге ? То есть, допустим, заказывается виртуальный хостинг и там уже есть NodeJS, а остается только конфигурацию настроить под себя. Или такое на виртуальном хостинге невозможно ?

Заранее благодарен за ответы.

Версия Drupal: 
8.x7.x
Вопрос задан 14.11.2016 - 14:35

Ответы

1

по личному опыту

после небольших плясок с бубном во время настройки, впечатления сугубо положительные.
-- есть возможность привязать к рулсам и обновлять части сайта (блоки, views)
- крайне удобная штука для всяких live админок (обновляются счетчики данных, меняются статусы и т.п.)
- есть интеграция с комментами

по второму вопросу, можно поставить везде где есть рут.

но, не без ложки дегтя. Версия для семерки, не будет работать без сессии.

Я решил, переписав модуль под session_api (использование куки вместо сессии) + https://www.drupal.org/project/cookie_aware_page_cache, но все равно, неудобно.

Ответ дан 14.11.2016 - 20:04

Спасибо большое за разъяснение.

А вот вопрос. Допустим, понадобилось обновление блоков, views или других элементов сайта.
Каким образом будет со стороны сервера формироваться тело блока или views уже с новой информацией ?
Это уже реализовано в каких-либо модулях, или надо будет самому определять элемент в hook_menu (или в рутере), писать связанным с ним обработчик, который будет возвращать код блока, чтобы этот код передать клиенту ?

И еще один вопрос. Каким образом NodeJS будет узнавать о том, что в таком-то случае он должен будет делать то-то и то-то ? Например, если на форуме добавились еще темы или сообщения, то нужно послать клиентам новое тело блока c последними сообщениями. У него есть какие-то конфиг-файлы для этого ? Или как-то по-другому это делается ? И каким образом уведомить Drupal и NodeJS о том, что, если к примеру, нода такого-то типа добавилась, то такой-то views требует обновления ? Для этого определены специальные хуки ? Или через Rules ?

Комментарий оставлен 14.11.2016 - 21:39

вкратце
hook, отправка данных в nodejs, их выполнение

по сути, вы в nodejs можете отправить теже ajax commands друпала, и делать с ними что хотите

Комментарий оставлен 18.11.2016 - 15:12
1

Существуют готовые модули для этих задач, и готовая сборка ASYNC Drupal.
Views node.js.
Rules action with node.js
Custom javascript events with NodeJS
В самом модуле предусмотрена интеграция с Drupal AJAX.
На виртуальных хостингах не нашел готовых решений с Node Js, так что придется приобретать VPS или сервер.

Ответ дан 15.11.2016 - 05:46

Думаю, не обязательно.
Это может быть полезно также в случае, если на Drupal работает какая-то интранет-система.
Чтобы одни пользователи оперативно могли видеть то, что было изменено другими пользователями.

Комментарий оставлен 15.11.2016 - 11:01