18
Drupal + NodeJS Черебедов Сергей [email protected]

Sergey Cherebedov. Node.js+Drupal

Embed Size (px)

Citation preview

Page 1: Sergey Cherebedov. Node.js+Drupal

Drupal + NodeJSЧеребедов Сергей [email protected]

Page 2: Sergey Cherebedov. Node.js+Drupal

Что такое NodeJS ?

nodejs.org

Page 3: Sergey Cherebedov. Node.js+Drupal

Зачем нужно в Drupal ?

Page 4: Sergey Cherebedov. Node.js+Drupal

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

Clie

nt

A

pach

e D

rupa

l

N

odeJ

S

Клиент отправляет запрос в Drupal

Drupal возвращает HTML с JS и токеном

Клиент отправляет запрос в NodeJS на авторизацию

NodeJS отправляет запрос на проверку токена в Drupal

Drupal отправляетсоответствующий канал для пользователя

NodeJS уведомляет клиента о успешной авторизации

Последующий обмен данными без Drupal

Page 5: Sergey Cherebedov. Node.js+Drupal

Socket.io vs Ajax

Ajax

Long polling

WebSockets

Request Response

Client Server

Request ResponseWait

Page 6: Sergey Cherebedov. Node.js+Drupal

NodeJS

drupal.org/project/nodejs

Page 7: Sergey Cherebedov. Node.js+Drupal

Особенности установки

npm install express --savenpm install request --savenpm install socket.io --save

"engines": { "node": "0.10.x"},"dependencies": { "express": "^4.11.2", "request": "2.36", "socket.io": "^1.3.3"}

Page 8: Sergey Cherebedov. Node.js+Drupal

Channels

● Обычные каналы ○ Подписаться/отписаться

● Каналы пользователей○ имя: nodejs_user_$UID

● Другие каналы○ nodejs_notify

Page 9: Sergey Cherebedov. Node.js+Drupal

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); } }};

Page 10: Sergey Cherebedov. Node.js+Drupal

NodeJS Watchdog

Page 11: Sergey Cherebedov. Node.js+Drupal

Views NodeJS

drupal.org/project/views_nodejs

Page 12: Sergey Cherebedov. Node.js+Drupal

Views NodeJS

Page 13: Sergey Cherebedov. Node.js+Drupal

Rules action with NodeJS

Page 14: Sergey Cherebedov. Node.js+Drupal

Rules action with NodeJS

Page 15: Sergey Cherebedov. Node.js+Drupal

Private messages NodeJS

drupal.org/project/privatemsg_nodejs

Page 16: Sergey Cherebedov. Node.js+Drupal

Private messages NodeJS

Page 17: Sergey Cherebedov. Node.js+Drupal

Drupal Async

www.drupal.org/project/async_drupal

➔ NodeJS➔ Views NodeJS➔ Private Message NodeJS➔ Rules action with NodeJS

Page 18: Sergey Cherebedov. Node.js+Drupal