XMPP | |
|
| |
Overview | |
|
Tiki provides real time chat features through the XMPP protocol. XMPP is an open and widely used standard for instant messaging and group communication. In Tiki, XMPP is used to enable both private conversations and shared chatrooms directly within the web interface. Tiki does not act as an XMPP server. It relies on an external XMPP server to handle message delivery, presence, and chatroom management. The web based chat interface is provided by ConverseJS, which runs in the user’s browser and connects to the XMPP server. | |
What XMPP Enables in Tiki | |
|
Because Tiki manages users and groups, it can automatically control access to chatrooms and authentication. This ensures that chat behavior remains consistent with the site’s permission model. | |
Architecture | |
|
Desktop and mobile XMPP clients can connect to the same server. This allows administrators or power users to participate in conversations without using the web interface. | |
Requirements | |
|
This feature assumes a basic level of server administration knowledge, especially for DNS and certificate management. | |
Choosing an XMPP Server | |
|
For most use cases, Prosody offers the simplest and most reliable experience. | |
Installing and Configuring Prosody | |
|
That guide explains how to install Prosody, enable HTTP authentication with Tiki, support anonymous users, configure chatrooms, and secure the setup using TLS. It is written to work specifically with Tiki and should be followed step by step. | |
Configuring Tiki for XMPP | |
|
These settings allow Tiki to automatically authenticate users, display the ConverseJS interface, and manage chatroom access based on group membership. No manual login is required for users once the configuration is complete. | |
ConverseJS Interface Modes | |
|
| |
Overlayed mode | |
|
Overlayed Mode is configured as a Tiki Module. A small box will appear on the bottom corner of the page containing a contact list. Users can click on contact list to start a chat session while simultaneously browsing the site.
| |
Embedded mode | |
|
The Embedded mode can be configured as a wiki plugin (PluginXMPP). A chatbox will appear directly in the middle of the page content where the plugin is placed. This is typically used for persistent group chats (MUC) dedicated to the specific topic of that page.
| |
Fullscreen mode | |
|
Fullscreen mode takes all webpage space to provide a comprehensive interface for contact lists and chat boxes, similar to a dedicated desktop application. Users can easily switch between private chats and group chats while using this mode.
| |
User Stories and Use Cases | |
|
| |
Groups and Chatrooms | |
|
This approach reduces administrative effort and avoids manual room management on the XMPP server. | |
Room membership synchronization behavior (Prosody) | |
|
As a result, during login or immediately after registration, a user may not directly see the popup for chatrooms they should be in. This is expected behavior and usually resolves automatically within a few seconds as the systems sync. If needed, a simple page reload will finalize the room membership. This design avoids blocking the user interface while ensuring correct and scalable synchronization. | |
Chat Clients | |
|
| |
Limitations | |
|
Outdated Information
| |
Installing the XMPP Prebind library for TikiToken | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Importance:
Library source: https://packagist.org/packages/candy-chat/xmpp-prebind-php Installation steps:
Copy to clipboard
Note: Installing this library is optional. Without it, TikiToken authentication will silently fall back to standard login, so chat still works, but users will not get the automatic login experience.
The reference implementation is with Openfire, but this should work with any XMPP server (perhaps with fewer features). alias
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||