Copyright © 2016 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author(s), nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: September 2016
Production reference: 1280916
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.
ISBN 978-1-78528-798-5
www.packtpub.com
Lloyd Watkin has over 10 years of experience in building for the Web. A great believer in open source and open standards, he has contributed to, started, and led many successful open source projects and is also an international conference speaker.
Lloyd was knowingly introduced to XMPP in 2012 and hasn't looked back. Its open standard base and the ability to code clients, servers, components in any language leads to a very diverse and healthy environment. Its relevance only seems to increase as new technologies (not imagined at the time of creation) come into existence.
I would like to thank my family and friends for their support and damaged ear drums. I would also like to thank the XSF and the XMPP community as a whole for being supportive, welcoming, and always striving to improve and extend the XMPP ecosystem.
David Koelle is a principal software engineer at Charles River Analytics Inc. in Cambridge, Massachusetts, USA, where he has employed XMPP on projects to facilitate collaboration and shared situational awareness among distant teams. He is also the author of JFugue, a popular open source music programming API for Java and other JVM languages, and he is a co-organizer for the Boston Android Meetup.
David has delivered several award-winning talks at high-profile conferences including JavaOne and SXSW. In addition to his technical work in software engineering and systems engineering, he finds opportunities to mentor engineers to help them grow in their careers and recognize the value that proactive leadership can bring to engineers and their environments. David is a graduate of Worcester Polytechnic Institute (WPI).
Emilien Kenler, after working on small web projects, began focusing on game development in 2008 while he was in high school. Until 2011, he worked for different groups and specialized in system administration.
In 2011, he founded a company that sold Minecraft servers while studying Computer Science Engineering. He created a lightweight IaaS (https://github.com/HostYourCreeper/) based on new technologies such as Node.js and RabbitMQ.
Thereafter, he worked at TaDaweb as a system administrator, building its infrastructure and creating tools to manage deployments and monitoring.
In 2014, he began a new adventure at Wizcorp, Tokyo. The same year, Emilien graduated from the University of Technology of CompiĂšgne, France.
Since 2016, heâs a systems engineer at Vesper, the company behind TableSolution, a leading restaurant reservation and CRM system.
Emilien has written MariaDB Essentials, Packt Publishing. He has also contributed as a reviewer on Learning Nagios 4, MariaDB High Performance, OpenVZ Essentials, Vagrant Virtual Development Environment Cookbook, Getting Started with MariaDB Second Edition and Mastering Redis, all by Packt Publishing.
Ian Wild's career has always focused primarily on communication and learning. Ian, a physicist by profession, spent 15 years in private industry designing communication systems software (Lucent Technologies, Avaya) before specializing in the development and deployment of learning management systems. Ian has a particular interest in the integration of legacy systems. He is currently the lead developer for Skills for Health, the sector skills council for the UK's health sector. He is responsible for one of the country's busiest online learning platforms (the National Skills Academy for Health).
eBooks, discount offers, and more
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at
www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
[email protected] for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www2.packtpub.com/books/subscription/packtlib
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.
- Fully searchable across every book published by Packt
- Copy and paste, print, and bookmark content
- On demand and accessible via a web browser
XMPP has been around since 1999, and in that time has been rediscovered several times over by generation after generation of programmers. Originally started to unify what was a massively fragmented instant messaging scene, XMPP has continued to show its relevance as new technologies and technology uses emerge.
We'll be making use of the Prosody XMPP server, a fast, resource light system written in LUA, as well as Node.js to write our own projects. The two main libraries we'll be using to interact with XMPP are node-xmpp on the server side and XMPP-FTW, a translation layer between XMPPâs XML messages and JSON, which is massively popular for use in the browser.
Through this book, you'll learn about the core concepts of XMPP, build basic clients that will allow you to interact with the XMPP ecosystem at large, build time-saving bots, and even build an entire custom application using XMPP standards and your own extensions.
The skills you'll learn in this book will allow you to create the next massively popular chat application built on the core standards, through to your own full-fledged Internet of Things (IoT) device that will collect, share, and respond to data from interconnected servers all over the world!
Chapter 1, An Introduction to XMPP and Installing Our First Server. Provides a brief introduction to the history of XMPP and its uses as well as installing and interacting with our first XMPP server.
Chapter 2, Diving into the Core XMPP Concepts, reveals that XMPP covers a vast number of areas but at its core is very simple and extensible. Here we learn about the core concepts so when we come to building our XMPP applications later we understand what's going on.
Chapter 3, Building a One-on-One Chat Bot - The "Hello World" of XMPP, show us how to build a simple chat bot and interact with it via a standard client.
Chapter 4, Talking XMPP in the Browser Using XMPP-FTW, we introduce XMPP-FTW and shows us how to build some basic functionality.
Chapter 5, Building a Multi-User Chat Application, how to create a very basic multi user chat client in the browser and begin chatting with our XMPP users.
Chapter 6, Make Your Static Website Real-Time, takes a standard static website and add real time data to it pushed via XMPP, making even the dullest website dynamic and exciting!
Chapter 7, Creating an XMPP Component, shows how to create our first server-side component, which let you develop business logic without modifying the server itself.
Chapter 8, Building a Basic XMPP-Based P...