Skip to content

Erupt Notice Message Notifications

Requires version 1.13.2 or above

Provides broadcast-to-all and point-to-point message push capabilities, with support for rich-text formatting and content management. The default transport mechanism is WebSocket in-app push, with a pluggable extension model that supports third-party notification channels such as SMS, email, Feishu (Lark), and Slack.

Adding the Dependency

xml
<dependency>
    <groupId>xyz.erupt</groupId>
    <artifactId>erupt-notice</artifactId>
    <version>${erupt.version}</version>
</dependency>

After starting and logging in again, a notification bell icon appears in the top-right corner and a notification management menu appears in the sidebar:

Features

Announcements

Supports rich-text editing. Published announcements are visible to all users when they enter the system:

Announcement edit interface:

Announcement display:

Notification Scene Management

Based on different business sources, notification scenes must be configured before sending notifications, making it easier for users to categorize and manage received notifications:

Message Notifications

Messages sent via the API or manually appear in the notification list, with support for marking as read and viewing details:

Send Notification API

java
@Resource
private NoticeService noticeService;

// Send to specific users
noticeService.sendNotice(
    "scene_code",       // Scene code
    "Message Title",
    "Message Content",
    Arrays.asList("user1", "user2")  // List of recipient users
);

// Broadcast to all users
noticeService.broadcast("scene_code", "Notification Title", "Notification Content");

Notification Channels

Implement the NoticeChannel interface to register a custom notification channel and simultaneously deliver notification content to platforms like Slack, Feishu, SMS, etc.:

java
@Component
public class SlackNoticeChannel implements NoticeChannel {

    @Override
    public String channelName() {
        return "Slack";
    }

    @Override
    public void send(String title, String content, List<String> receivers) {
        // Call the Slack API to send messages
    }
}

Contributors

The avatar of contributor named as YuePeng YuePeng

Changelog

Released under the Apache-2.0 License.