Book Image

Practical XMPP

By : Steven Watkin, David Koelle
Book Image

Practical XMPP

By: Steven Watkin, David Koelle

Overview of this book

XMPP (eXtensible Messaging and Presence Protocol) is a messaging protocol that enables communication between two or more devices via the Internet. With this book, developers will learn about the fundamentals of XMPP, be able to work with the core functionality both server-side and in the browser, as well as starting to explore several of the protocol extensions. You will not only have a solid grasp of XMPP and how it works, but will also be able to use the protocol to build real-world applications that utilize the power of XMPP. By the end of this book, you will know more about networking applications in general, and have a good understanding of how to extend XMPP, as well as using it in sample applications.
Table of Contents (16 chapters)
Practical XMPP
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Free Chapter
1
An Introduction to XMPP and Installing Our First Server

Talking to our bot from the browser


So now you've learned about XMPP connections and XMPP-FTW, and you have played with a JSON-based XMPP interface in a browser. Now let's build a very simple chat client to talk to the bot we wrote in Chapter 3, Building a One on One Chat Bot - The "Hello World" of XMPP.

Building a WebSocket-enabled web server in Node.js

First, let's create a new folder and initialize a new NPM project:

mkdir browser-chat && cd browser-chat
npm init

Answer the questions however you wish (you can just happily accept all the defaults if you want). Once completed, you'll have a saved package.json file that describes the project. As we install modules, we'll write their details into the file so that the installations can be repeated by others later.

Rather than use express, we're going to use the base HTTP module from Node.js, as we're only looking to deliver a couple of static assets from the server itself. Create a file called index.js using an editor of your choice and...