First, Introduction
Ejabberd is an open source Instant Messaging server written in ERLANG/OTP, which is a cross-platform, distributed, fault-tolerant, open-standards-based, real-time communication system. Ejabberd is a feature-rich XMPP server, suitable for both small-scale and ultra-large reckoned deployments, regardless of the need for scalability.
Second, the key function
1. Cross-platform
Ejabberd can run on Microsoft Windows and UNIX-like systems such as Linux, FreeBSD, and NetBSD.
2. Distributed
You can run Ejabberd on a clustered machine, and all the machines serve the same or some Jabbe domains, and when you need more capacity, you can simply add a cheap node to the cluster, so you don't need to buy an expensive high-end machine to support tens of thousands of concurrent users.
3. Fault tolerance
A ejabberd cluster can be set up so that all the required information for a functioning service is replicated to all nodes. This means that if one of the nodes crashes, the other nodes will continue to run without interruption. Alternatively, you can add or replace nodes ' without downtime '.
4. Easy to manage
Ejabberd is built on open-source Erlang, so there's no need to install external server databases, external Web servers, and so on, because everything is already inside and out of the box. The administrative benefits include:
(1) Detailed documentation;
(2) Convenient installation program, including Linux, Mac OS x and Windows system;
(3) Web management;
(4) Share roster group;
(5) command-line management tools;
(6) The verification mechanism can be integrated externally;
(7) Ability to send anonymous messages.
5. Internationalization
Ejabberd leadership internationalization is well suited for globalization and features include:
(1) translated into 25 languages;
(2) Support Idna.
6. Open standards
Ejabberd is an open source Jabber server that fully supports the XMPP standard:
(1) fully compatible with XMPP;
(2) XML-based protocol;
(3) Many protocols are supported.
Third, additional functions
1, modular
(1) Load only the modules you want;
(2) Extend the Ejabberd with a custom module.
2. Security
(1) Support the SASL and STARTTLS of C2s and S2S connections;
(2) Support S2S connection of STARTTLS and Dialback;
(3) Web management via HTTPS secure access.
3. Database
(1) Rapid deployment of the internal Database (Mnesia);
(2) native MySQL support;
(3) native PostgreSQL support;
(4) Support ODBC data storage;
(5) Support for Microsoft SQL Server.
4. Verification
(1) Internal verification;
(2) PAM, LDAP, and ODBC;
(3) External validation script.
5. Other
(1) Support virtual host;
(2) XML stream compression (XEP-0138);
(3) statistics (XEP-0039);
(4) Support IPv6 C2s and S2S connection;
(5) Support the multi-user chat module of cluster and HTML log;
(6) User directory based on user vcards;
(7) Support the distribution-subscription component of personal events based on PubSub;
(8) Support Web client: HTTP polling and HTTP binding (BOSH) service;
(9) IRC gateway;
(10) Component support: After installing a specific gateway and external network interfaces such as AIM, ICQ and MSN.
Do not look at the above list of functions, the actual use you will find all very useful.
Ejabberd Source Code Parsing Prelude--Overview