HZERO版本:1.0.0.RELEASE
实现org.hzero.boot.message.handler.ISocketHandler接口,类添加@SocketHandler注解,指定话题的key
import org.hzero.boot.message.annotation.SocketHandler;
import org.hzero.boot.message.entity.Msg;
import org.hzero.boot.message.handler.ISocketHandler;
@SocketHandler("hzero-demo")
public class MessageHandlerDemo implements ISocketHandler {
@Override
public void processMessage(Msg msg) {
System.out.println("接收到前端socket消息:" + msg.getMessage());
}
}
将所有的ISocketHandler方法,放入容器中
org.hzero.boot.message.registry.MessageInit
org.hzero.message.api.controller.v1.SendWebController#sendMessageWithTemplate
org.hzero.message.app.service.impl.WebSendServiceImpl#sendMessage(java.lang.Long, java.util.List<org.hzero.boot.message.entity.Receiver>, org.hzero.message.domain.entity.Message)
org.hzero.message.app.service.impl.WebSendServiceImpl#saveUserMessage
org.hzero.message.app.service.impl.UserMessageServiceImpl#createSimpleMessage
org.hzero.message.app.service.impl.UserMessageServiceImpl#senWebSocket
org.hzero.boot.message.MessageClient#sendByUserId
org.hzero.websocket.autoconfigure.WebSocketAutoConfig#container
SocketMessageHandler的继承子类,processMessage方法调用/socket/message/handler
org.hzero.message.infra.handler.MessageHandler
获取所有的ISocketHandler,调用其processMessage
org.hzero.boot.message.controller.MessageController#handlerMessage
监听来自队列hzero-webSocket的消息,然后使用WebSocketSession发送消息
org.hzero.websocket.listener.RedisListener
获取所有的SocketMessageHandler,调用其processMessage方法,处理消息
org.hzero.websocket.handler.WebSocketHandler
设置请求头access_token
org.hzero.websocket.interceptor.WebSocketInterceptor
已读消息,
org.hzero.message.app.service.impl.UserMessageServiceImpl#readMessage(long, long)
this.simpleMessageRedisHelper.delKey("hmsg:message:web:" + userId);
this.simpleMessageRedisHelper.delKey("hmsg:message:web:" + userId + ":index");