Your SlideShare is downloading. ×
0
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Bringing Interactivity to Your Drupal Site with Node.js Integration

7,612

Published on

Drupal is a powerful, flexible platform for building applications, but not something that handles realtime notifications easily. Node.js is a breath of fresh air in the Open Source web server …

Drupal is a powerful, flexible platform for building applications, but not something that handles realtime notifications easily. Node.js is a breath of fresh air in the Open Source web server landscape. It makes writing applications that handle thousands of open connections at the same time easily.

The Nodejs module integrates Drupal with Node.js, allowing for the best of both worlds. Realtime chat, push notifications and help desk functionality can all be easily added to your Drupal site via the Nodejs module, without the usual scalability and performance issues associated with these technologies on the LAMP stack.

Published in: Technology
1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total Views
7,612
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
74
Comments
1
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Bring real-time interactivity to Drupal with Node.js Howard Tyson, senior developer, Zivtech Kieran Lal, technical director, enterprise sales
  • 2. Upcoming  Webinars• Drupal  in  the  Trenches:  Solving  Real  World  Problems• Five  websites  you  can  launch  on  Dev  Cloud  without  Coding• Selecting  the  Right  Solution  to  Build  your  Online   Developer  Community• Easy  Drupal  Hosting  Lifecycle• From  PSD  to  Drupal  Theme• Four  Open  Source  Drupal  Applications  for  Higher  Ed http://acquia.com/resources/webinars
  • 3. Upcoming  Node.js  Webinars• Lessons  learned  integrating  Drupal  with  Node.js  and   MongoDB  powered  Web  Services • Lior  Kesos,  Swifto,  founder  Linnovate • November  9th,  2011 http://acquia.com/resources/webinars
  • 4. Howard  Tyson• Howard  Tyson,  Senior  Developer  at  Zivtech  • Developing  Drupal  powered  websites  since  2006.    • Howard  contributes  to  Drupal  and  co-­‐maintains  the   Nodejs  module,  Version  Control  API  among  others.• Version  control  powers  Git  repository  on  Drupal.org  which   has  added  6000  more  developers  since  Jan,  2011
  • 5. Node.js & Drupal Drupal in realtime via Node.js
  • 6. WhoWho am I?
  • 7. Howard Tyson• Drupal.org, twitter, IRC: tizzo• Senior Developer at Zivtech• Drupal & systems architect, trainer
  • 8. Zivtech• Drupal experts• Open source enthusiasts (node.js, Alfresco, Zend, Python, etc).• Excellent web/mobile design team• Offer public and private trainings focused on turning smart people into excellent developers
  • 9. WhatWhat is Node.js everyone is talking about, anyway?
  • 10. Node.js• Javascript on the server• Based on Google’s V8 engine• Event driven• Asynchronous I/O performed by libraries
  • 11. Architecture JavaScript C/C++ your code node standard library node bindings provided by modules (socket, http, etc) thread pool
  • 12. Architecture• A single process runs the main event loop and maintains all connections• Tasks are performed asynchronously by workers in a thread pool managed by a library leaving the main event loop free to handle other requests
  • 13. Node.js hello world• Writing a web server was never so easy!
  • 14. WhyWe already have Apache, why is this helpful?
  • 15. Why we care about realtime?• Users expect more and more (they see it on Facebook, Twitter, Google, etc. every day)• Great for mobile• Bridge the native app gap
  • 16. A Use Case• Dignio• A service for improving life for patience needing additional care but not assisted living• Realtime webapp for call center employees, patients
  • 17. Apache’s Shortcomings• One thread (usually one process) per connection• Memory heavy processes (for Drupal especially)• Persistent and concurrent connections are
  • 18. Node.js is good for...• Concurrency! • Asynchronous I/O • Low overhead for open connections• Light weight servers• Networking applications
  • 19. Node.js is good for...• Backend workers or serving clients• Node.js has a vibrant community writing extensions (often you just need to write some glue, sound familiar?)• Wherever Drupal’s power comes at too high a price
  • 20. HowHow do we use node.js with Drupal?
  • 21. Integarting with node.js• Write your own node.js server • if you know javascript, it’s not so hard!• Use drupal’s node.js module for realtime communications
  • 22. The Node.js module• The node.js module on Drupal.org• http://drupal.org/project/nodejs• Focused on realtime updates for Drupal • Provides a node.js server and a Drupal module that integrates with it
  • 23. Realtime?• Until now, when a client opens a page they don’t see updates until the next time they refresh the page• Our module can push content to someone while they view the page
  • 24. Authentication 4.3. Node.js sends a Drupal returns listauth token to of channels for the user Drupal 2. Connection 5. Node.js notifies 1. Normal Drupal requested by client that auth is Page Loadsocket.io using auth successful (with auth token) token
  • 25. Subsequent pages 2. Node.js remembers the 1. Normal Drupal authenticated Page Loadtoken, authenticating (with auth token) the user without a need to query Drupal again
  • 26. Client requests Drupal page Drupal sends down HTML with JS token Client sends auth token to Node.js Node.js verifies token with Drupal Apache Client Drupal sends appropriate / Nginx Node.js notifies channels for the the client of user successful auth Node.js Subsequent connections do not hit DrupalWeb browser Node.js Server Apache Server
  • 27. WhereWhere can my code hook in to leverage Node.js?
  • 28. PHP
  • 29. JavaScript
  • 30. Add a user to a channel
  • 31. Message only the channel
  • 32. WhenAre we getting new features?
  • 33. What’s coming• Version 1.0 is right around the corner• we’re on beta5• Chatroom is undergoing a refactor to rely on a push capable backend (like node.js)
  • 34. New Features• Content channels (recently landed) • Views integration • Generic entity updating • Your module here...
  • 35. Call to action!• We need: • Contributors! • Documentation writers! • Testers!• http://drupal.org/project/nodejs• http://drupal.org/project/chatroom
  • 36. DemoLet’s see it in action!
  • 37. Questions• For  more  information  visit:    http://www.acquia.com• Follow  us:    http://www.twitter.com/acquia• Contact  us:    sales@acquia.com  or  888.9.ACQUIA• Howard  Tyson  howard@howardtyson.com• Kieran  Lal,  kieran@acquia.com,    415-­‐992-­‐8124• follow:  amazonk Today’s  webinar  recording  will  be  posted  to: http://acquia.com/resources/recorded_webinars

×