Please refer to their documentation.
Extract the Chat Extension Build.
Move the Folder ChatExtension folder under the extensions folder of your HiveMQ instance.
On your database server, import the schema from Chat.sql.
To be able to run the extension, we have to define four environment variables:
- chat_db_driver: the database driver (example: com.mysql.jdbc.Driver)
- chat_db_url: The url of your database (example: jdbc:mysql://localhost:3306/chat)
- chat_db_username: username of the database
- chat_db_password: password for the database
Before you build the project, please specify your database information on the file mybatis-config.xml
To be able to test the application, please insert some users on the table user.
- Login
- Get Archives on login (list of rooms [groups and contacts] and user information)
- Send invitation to a user
- Create group chat with members.
- Messaging (Text, and file messages)
- Chat Markers
- Presence
To define Database information, please edit the file mybatis-config.xml.
To change the way the users log in, implement your logic inside MyAuthenticationProvider.java.
After a successful login, the user will need some information from the server (Like list of contacts and groups, his profile, messages archives if implemented). Those information are published by a special user (called supreme user), he is responsible to send retained messages to specific topics.
To be able to send an invitation, the user shoudl send this payload to "invitations/{username to invite}":
If there is any error, the user should receive on "personalevents/{userId}" this payload, the id is the same of the sent invitation:
You can find a simple schema for the database here
Here is a simple Flutter client .