Professional XMPP Programming with JavaScript and jQuery.pdf

时间:2022-09-05 09:56:17
【文件属性】:

文件名称:Professional XMPP Programming with JavaScript and jQuery.pdf

文件大小:12.64MB

文件格式:PDF

更新时间:2022-09-05 09:56:17

Professional XMPP Programming JavaScript jQuery

XMPP Powers a wIde range of aPPlIcatIons including instant messaging, multi-user chat, voice and video conferencing, collaborative spaces, real-time gaming, data synchronization, and even search. Although XMPP started its life as an open, standardized alternative to proprietary instant messaging systems like ICQ and AOL Instant Messenger, it has matured into an extremely robust protocol for all kinds of exciting creations. Facebook uses XMPP technology as part of its chat system. Google uses XMPP to power Google Talk and its exciting new Google Wave protocol. Collecta has built a real-time search engine based extensively on XMPP’s publish-subscribe system. Several web browsers are experimenting with XMPP as the basis of their synchronization and sharing systems. Dozens of other companies have XMPP-enabled their web applications to provide enhanced user experiences and real-time interaction. The core of XMPP is the exchange of small, structured chunks of information. Like HTTP, XMPP is a client-server protocol, but it differs from HTTP by allowing either side to send data to the other asynchronously. XMPP connections are long lived, and data is pushed instead of pulled. Because of XMPP’s differences, it provides an excellent companion protocol to HTTP. XMPP-powered web applications are to AJAX what AJAX was to the static web site; they are the next level of interactiv- ity and dynamism. Where JavaScript and dynamic HTML have brought desktop application features to the web browser, XMPP brings new communications possibilities to the Web. XMPP has many common social web features built in, due to its instant messaging heritage. Contact lists and subscriptions create social graphs, presence updates help users keep track of who is doing what, and private messaging makes communication among users trivial. XMPP also has nearly 300 extensions, providing a broad and useful range of tools on which to build sophisticated applications. With only a handful of these, along with the core protocol, amazing things can be built This book teaches you to harness the promise of XMPP in your own applications, enabling you to build applications that are social, collaborative, real time, or all of the above. You will develop a series of increasingly sophisticated XMPP applications, starting from “Hello, World!” and finishing with a collaborative text editor, a shared sketch pad, and a real-time, multi-player game. By the end, you will have all the tools you need to build the next generation of applications using XMPP or to add new real-time, push, or social features to your current applications. who thIs Book Is for This book is written for developers interested in making XMPP applications. You need not have any previous experience with XMPP, although it will certainly be helpful if you do. The book starts from the assumption that you’ve heard great things about XMPP and are looking to dive right in. 40718flast.indd 19 11/30/09 4:03:01 PM xx IntroductIon The JavaScript language is used to develop all the applications in the book because it is an easy lan- guage to understand, is familiar to a large number of programmers, and comes on every computer with a web browser. Even though this book uses JavaScript, all the concepts and applications could be developed in any language; most of the “hard parts” are not related to the programming language, the libraries used, or the web browser. You do not need to be a JavaScript expert to understand and work with the code in this book. It is assumed that you understand the basic front-end web technologies, CSS and HTML. If you’ve ever written a little HTML from scratch and changed a few CSS styling properties, you should be fine. This book also makes use of two libraries, jQuery and Strophe. It is helpful if you have used jQuery before, but if you haven’t, a short primer is included in Appendix A. The Strophe library is explained fully as the applications are developed. what thIs Book covers The XMPP protocol and its extensions cover a lot of ground. This book focuses on the pieces of XMPP in wide use. The following topics receive much attention: XMPP’s instant messaging features like rosters, presence and subscriptions, and private chats ➤ ➤ XMPP stanzas, stanza errors, and client protocol syntax and semantics ➤ ➤ Extending XMPP stanzas ➤ ➤ Service discovery (XEP-0030) ➤ ➤ Data Forms (XEP-0004) ➤ ➤ Multi-User Chat (XEP-0045) ➤ ➤ Publish-Subscribe (XEP-0060) ➤ ➤ Although these topics are all approached from the client side, almost all of it is equally applicable to XMPP bots or server components and plug-ins. The book also covers XMPP programming related topics such as application design, event handling, and combining simple protocol elements into a greater whole. Along the way, a few web programming topics are also discussed such as the Canvas API. XMPP is now more than 10 years old and quite mature. This book covers the 1.0 version of the core protocol. The XMPP protocol parts of this book should work unchanged in future versions of the pro- tocol, just as HTTP 1.0 clients can easily communicate with HTTP 1.1 servers. XMPP has many extensions and several of these are also covered. For the most part, the book con- centrates on extensions that are in a stable, mature state. For each extension used, the document number is always given, and if in doubt, you can always check the latest version of the extension to see if it has been changed or superseded. 40718flast.indd 20 11/30/09 4:03:01 PM xxi IntroductIon The book was written with the 1.3 series versions of jQuery and the 1.7 series versions of jQuery UI. These libraries generally remain backward compatible to a large degree. Version 1.0 of the Strophe library is used, but future 1.X versions should also work fine.


网友评论