Browse Source

feat:增加注释

tags/freeze
黄翔 3 months ago
parent
commit
af1f5dbeb1
  1. 4
      src/main/java/com/iflytop/gd/common/controller/NotificationWebsocketEndpoint.java
  2. 16
      src/main/java/com/iflytop/gd/infrastructure/modules/WebSocketNotificationPushMgrImpl.java
  3. 10
      src/main/java/com/iflytop/gd/system/modules/NotificationPushMgr.java

4
src/main/java/com/iflytop/gd/common/controller/NotificationWebsocketEndpoint.java

@ -1,6 +1,6 @@
package com.iflytop.gd.common.controller; package com.iflytop.gd.common.controller;
import com.iflytop.gd.infrastructure.modules.WebSocketNotificationMgrImpl;
import com.iflytop.gd.infrastructure.modules.WebSocketNotificationPushMgrImpl;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.websocket.EndpointConfig; import jakarta.websocket.EndpointConfig;
import jakarta.websocket.OnOpen; import jakarta.websocket.OnOpen;
@ -15,7 +15,7 @@ import org.springframework.stereotype.Component;
public class NotificationWebsocketEndpoint { public class NotificationWebsocketEndpoint {
@Resource @Resource
private WebSocketNotificationMgrImpl notificationMgr;
private WebSocketNotificationPushMgrImpl notificationMgr;
@OnOpen @OnOpen
public void onOpen(Session session, EndpointConfig endpointConfig) { public void onOpen(Session session, EndpointConfig endpointConfig) {

16
src/main/java/com/iflytop/gd/infrastructure/modules/WebSocketNotificationMgrImpl.java → src/main/java/com/iflytop/gd/infrastructure/modules/WebSocketNotificationPushMgrImpl.java

@ -2,22 +2,32 @@ package com.iflytop.gd.infrastructure.modules;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.iflytop.gd.common.notification.Notification; import com.iflytop.gd.common.notification.Notification;
import com.iflytop.gd.system.modules.NotificationMgr;
import com.iflytop.gd.system.modules.NotificationPushMgr;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import jakarta.websocket.Session; import jakarta.websocket.Session;
import java.io.IOException;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
/**
* 使用Websocket实现通知推送管理
*/
@Slf4j
@Component @Component
public class WebSocketNotificationMgrImpl implements NotificationMgr {
public class WebSocketNotificationPushMgrImpl implements NotificationPushMgr {
private final Set<Session> sessions = new HashSet<>(); private final Set<Session> sessions = new HashSet<>();
@Override @Override
public void pushNotification(Notification notification) { public void pushNotification(Notification notification) {
for (Session session : sessions) { for (Session session : sessions) {
session.getAsyncRemote().sendText(JSONUtil.toJsonStr(notification));
try {
session.getBasicRemote().sendText(JSONUtil.toJsonStr(notification));
} catch (IOException e) {
log.error("Fail to send notification to session: {}", session.getId(), e);
}
} }
} }

10
src/main/java/com/iflytop/gd/system/modules/NotificationMgr.java → src/main/java/com/iflytop/gd/system/modules/NotificationPushMgr.java

@ -2,6 +2,14 @@ package com.iflytop.gd.system.modules;
import com.iflytop.gd.common.notification.Notification; import com.iflytop.gd.common.notification.Notification;
public interface NotificationMgr {
/**
* 通知管理器
*/
public interface NotificationPushMgr {
/**
* 向前端推送通知
* @param notification 通知实例
*/
void pushNotification(Notification notification); void pushNotification(Notification notification);
} }
Loading…
Cancel
Save