Book Image

Advanced Node.js Development

By : Andrew Mead
2 (1)
Book Image

Advanced Node.js Development

2 (1)
By: Andrew Mead

Overview of this book

Advanced Node.js Development is a practical, project-based book that provides you with all you need to progress as a Node.js developer. Node is a ubiquitous technology on the modern web, and an essential part of any web developer’s toolkit. If you're looking to create real-world Node applications, or you want to switch careers or launch a side-project to generate some extra income, then you're in the right place. This book was written around a single goal: turning you into a professional Node developer capable of developing, testing, and deploying real-world production applications. There's no better time to dive in. According to the 2018 Stack Overflow Survey, Node is in the top ten for back-end popularity and back-end salary. This book is built from the ground up around the latest version of Node.js (version 9.x.x). You'll be learning all the cutting-edge features available only in the latest software versions. This book delivers advanced skills that you need to become a professional Node developer. Along this journey you'll create your own API, you'll build a full real-time web app and create projects that apply the latest Async and Await technologies. Andrew Mead maps everything out for you in this book so that you can learn how to build powerful Node.js projects in a comprehensive, easy-to-follow package designed to get you up and running quickly.
Table of Contents (17 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Socket.io rooms


In the last section, we set up an event listener on the server listening for that join event, and we did some validation. This at least makes sure we have the name and the room name, both of which are going to be required.

The real next step is to actually use the Socket.io library to join rooms, and this is not going to let us just join rooms but it's also going to give us a different set of methods. We can choose to emit to everybody connected to the server or just to people in specific rooms, and that's exactly what we're going to be doing. We want to emit chat messages just to other people who are also in the room.

Now in order to join, what you do is you call socket.join. The socket.join takes a string name, and we have that name under params.room, just like we used in the previous section:

socket.on('join', (params, callback) => {
  if(!isRealString(params.name) || !isRealString(params.room)) {
    callback('Name and room name are required.');
  }
 
  socket.join(params...