Drupal + NodeJS
Черебедов Сергей
cherebedov.s@i20.biz
Что такое NodeJS ?
nodejs.org
Зачем нужно в Drupal ?
Как работает ?Client
ApacheDrupal
NodeJS
Клиент отправляет запрос в Drupal
Drupal возвращает HTML с JS и токеном
Клиент отправляет запрос в
NodeJS на авторизацию
NodeJS отправляет запрос на
проверку токена в Drupal
Drupal отправляет
соответствующий канал для
пользователя
NodeJS уведомляет клиента
о успешной авторизации
Последующий обмен
данными без Drupal
Socket.io vs Ajax
Ajax
Long polling
WebSockets
Request Response
Client Server
Request ResponseWait
NodeJS
drupal.org/project/nodejs
Особенности установки
npm install express --save
npm install request --save
npm install socket.io --save
"engines": {
"node": "0.10.x"
},
"dependencies": {
"express": "^4.11.2",
"request": "2.36",
"socket.io": "^1.3.3"
}
Channels
● Обычные каналы
○ Подписаться/отписаться
● Каналы пользователей
○ имя: nodejs_user_$UID
● Другие каналы
○ nodejs_notify
Hello world !
$message = (object) array(
'channel' => 'mymodule',
'data' => array(
'mymessage' => 'The Actual Message',
),
);
nodejs_enqueue_message($message);
Drupal.Nodejs.callbacks.mymodule = {
callback: function(message) {
if(message.channel == 'mymodule') {
console.log(message.data.
mymessage);
}
}
};
NodeJS Watchdog
Views NodeJS
drupal.org/project/views_nodejs
Views NodeJS
Rules action with NodeJS
Rules action with NodeJS
Private messages NodeJS
drupal.org/project/privatemsg_nodejs
Private messages NodeJS
Drupal Async
www.drupal.org/project/async_drupal
➔ NodeJS
➔ Views NodeJS
➔ Private Message NodeJS
➔ Rules action with NodeJS
Sergey Cherebedov. Node.js+Drupal

Sergey Cherebedov. Node.js+Drupal