我想使用sockjs + stomp + spring-boot-websocket实现此功能,如图所示:
答案 0 :(得分:0)
您有两种选择: 1.创建向用户发送消息的实用程序,在内部,您需要向3个用户(用户+子用户)发送消息并在控制器中使用此实用程序
看下面:
MyClassInterceptor extends ChannelInterceptorAdapter {
private static final Logger LOGGER = LogManager.getLogger(MyClassInterceptor .class);
@Override
public Message<?> preSend(Message<?> message, MessageChannel channel) {
MessageHeaders headers = message.getHeaders();
SimpMessageType type = (SimpMessageType) headers.get("simpMessageType");
String simpSessionId = (String) headers.get("simpSessionId");
if (type == SimpMessageType.CONNECT) {
Principal principal = (Principal) headers.get("simpUser");
LOGGER.debug("WsSession " + simpSessionId + " is connected for user " + principal.getName());
} else if (type == SimpMessageType.DISCONNECT) {
LOGGER.debug("WsSession " + simpSessionId + " is disconnected");
}
return message;
}
}
就我个人而言,我认为选项1更简单,并且不需要您处理许多事情。
你不能用spring来做,因为它根据用户名为每个用户创建了前缀,所以每个用户名都有特定的队列