QuickBlox Developers (API docs, code samples, SDK)

Chat

From QuickBlox Developers (API docs, code samples, SDK)
Jump to: navigation, search

Contents

Introduction

QuickBlox Chat module is a quick and reliable chat solution which uses jabber type server (XMPP protocol) as a basis but also benefits from our scalable cloud architecture and from integration with other QuickBlox modules enabling you to build chats with really cool features. To connect to our Chat module you need to plug in a library to your project and use the following server: chat.quickblox.com. Registration is open for any valid jabber client.

Important note: if you are not an enterprise client (running your own QuickBlox server) and you want to build a chat solution, please don't use our XMPP chat yet (the 2nd phase of integration with Users module is in progress). Instead, use the Location module API which allows you to create chat rooms and 1:1 chats using the Status field. Please read the following manual to do that: How to create Chat and other services using Location API. This approach featuring Map+Chat is also being used in our code samples currently. Download the versions for all major platforms here: iOS, Android, Windows Phone, Web/Facebook.

Description

Robust chat / IM (instant messenger) solution. Allows implementation of private chat dialogs as well as group chats. Great synergy with our Location module: users are able to see each other over Google Map, view profiles, send direct messages or engage in a chat room while also seeing chat messages and users over the map.

  • Robust connection, connection being kept alive
  • One to one and group chats
  • Instant messenger for sending private messages (system to user, user to user, company to user)
  • Reaches offline users via Push Notifications (powered by Messages module)
  • Integrates with Content module allowing users to send attachments (photos, videos to each other)
  • Integrates with Location module allowing users to see distance to others, view chat messages over Google Map, attend local chat rooms, send their location as attachment

Libraries list

Official libraries list is maintained by xmpp.org. It can be found on http://xmpp.org/xmpp-software/libraries/.

Possibilities

Our Chat Module supports all the reqirements of XMPP protocol and can be used to chat between clients. We can also support voice calls within the same XMPP.

Chat module supports the following XMPP features:

Chat module doesn’t support user registration. Users must be created using API QuickBlox (the same applies to delete).
Each user has a JID in the following format:
<id_user>-<id_app>-<login_user>@chat.quickblox.com,
password for authentication is the same as password that is used to authenticate the user on the API Quickblox.

If a user uses several applications under one account - this user will have several JIDs, in accordance with IDs of applications that he/she uses. For example, user freddy (user_id = 128) uses apps Gunslinger (application_id = 44) and Shoot-a-Zombie (application_id = 78), then such user will have the following JIDs: 128-44-freddy@chat.quickblox.com, 128-78-freddy@chat.quickblox.com.

Сonsidered that a user used the application if this user authenticated '"at least once in the context of this application.

Requirements

Namespace of our Chat Module is shared between all our users, so it is required to register a unique username for every single user.

Restrictions

User communication is restricted by “sandbox” of app. Even if apps belong to the same account, JIDs of different apps are not able to interact – you can’t login, send messages, be in the same chat (room). Chat module also can’t interact with other jabber-servers (s2s-connections are prohibited).

Back to Top