Wie entwickle ich benutzerdefinierte Funktionen auf Ejabberd?

8

Ich entwickle eine Echtzeit-Chat-App. Nach einiger Suche fand ich Ejabberd und Erlang eine gute Option.

Die Frage ist, dass der Ejabberd nicht alle Funktionen bietet, die ich brauche. Ich brauche einige benutzerdefinierte Funktionen wie Location Based Matching und anonyme Anmeldung.

Wie entwickle ich benutzerdefinierte Funktionen auf Ejabberd? Schreibmodule dafür? oder entwickeln Sie eine andere eigenständige Server-App (Web oder eine andere Art von Server-App), um damit zu interagieren?

update: Ein weiteres Problem ist die Art, wie wir benutzerdefinierte Funktionen / Features hinzufügen, die skalierbar sein sollten.

    
Mingming 05.03.2014, 09:08
quelle

2 Antworten

5

Sie können Ihre eigenen Module schreiben, die sich mit Ereignissen in ejabberd verbinden.

Hier ist eine Liste der Ereignisse von ejabberd:

%Vor%

Ссылка

Hier ist ein Tutorial, wie man ein Modul für ejabberd erstellt: Ссылка

Im Grunde schreiben Sie ein Modul und registrieren / fügen Sie Ihr Modul in der Konfigurationsdatei ejabberd.cfg wie folgt ein (z. B. "mod_motion"):

%Vor%

Ein Beispiel, das ich entwickelt habe, finden Sie hier: Ссылка

    
Kay Tsar 05.03.2014 11:28
quelle
3

Hier ist ein gutes Beispiel, wie man ein Präsenz-basiertes Modul von Ejabberd implementiert.

Ссылка

Einige Highlights:

Haken Sie Ihre Veranstaltung ein

In diesem Beispiel wählt der Autor die Anwesenheit auf Ejabberd

%Vor%

Das Format von ejabberd_hooks:add ist:

%Vor%

Sie müssen also das Function (4. Argument) wie folgt implementieren:

%Vor%

Die vollständige Liste aller Hooks: Ссылка

Analyseoptionen

Wenn Sie Ihre Module skalierbar machen möchten, müssen Sie einige Variablen definieren, damit Sie sie leicht ändern können.

Sie können gen_mod:get_module_opt(Host, Module, Opt, Default) verwenden, um Optionen in Ihrem ejabberd.cfg

zu erhalten

Wenn Sie beispielsweise eine Konfiguration wie folgt haben:

%Vor%

Sie können die count erhalten durch:

%Vor%     
Colin Su 05.03.2014 15:39
quelle

Tags und Links