Instant messaging processor (im)
Description
Fast messenger messaging processor.
Provides communication with messengers. It places incoming messages from messengers in the `/rest/v1/model/im/Messages` data model collection, and sends the `sending` messages created in it to the messengers' subscribers.
Forms collections/classes: im/Accounts, im/RemoteParties, im/Messages. Allows their further modification in the direction of extending the composition of properties and variants of values of enumerated fields.
Code |
|
Mode of operation |
|
Backup mode |
|
Types of sites |
|
Layer |
|
Placement |
|
Saving and restoring state on reboot |
|
appendix |
|
Opportunities
-
Messages can be text, pictures, sound files, etc. The text of the message is placed in the `/im/Message` entity field. The message text is placed in the `/im/Message` entity field, and other variants are saved as attachments (`file` field) and can be accessed through the `/rest/v1/model/im/Messages/ID_MESSAGE/file`.
-
Supports adding adapters to different types of messengers through creating plugins (erlang) or implementing strategies in scripts.
Limitations
-
Each individual messenger requires unique parameters that can be set in the account options (the `options` field of the entity im/Accounts). In particular for Telegram, `token` must be specified there, and also optionally `disable_notification` (`true` | `false`) и `parse_mode` (`none`, `markDown`, `HTML`).
-
The platform includes a connector to the Telegram. Other connectors require project development and can be implemented as scripts (separate script for receiving messages and placing them in collections, separate script for sending one specific message).
Parameters
Configuration example
The configuration is managed in an application available to master domain administrators. The application hides the full content of the configuration, but it is nevertheless accessible via the API.
The configuration contains a section to describe all instances of all roles. Parameters are defined for each specific role instance.
{
"name": "im1",
"roletype": "im",
"iface": "eth0",
"group": 11330,
"order": 1
}