类 WebSocketChannelInterceptor
java.lang.Object
cn.herodotus.engine.message.websocket.interceptor.WebSocketChannelInterceptor
- 所有已实现的接口:
org.springframework.messaging.support.ChannelInterceptor
public class WebSocketChannelInterceptor
extends Object
implements org.springframework.messaging.support.ChannelInterceptor
Description: Websocket消息监听
用于监听websocket用户连接情况
- 作者:
- : gengwei.zheng
- Date:
- : 2021/10/24 18:50
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明voidafterReceiveCompletion(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, Exception ex) 1.voidafterSendCompletion(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, boolean sent, Exception ex) 1.org.springframework.messaging.Message<?>postReceive(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) 在检索到消息之后,返回调用方之前调用,可以进行信息修改。voidpostSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, boolean sent) 在消息发送后立刻调用booleanpreReceive(org.springframework.messaging.MessageChannel channel) 在消息被实际检索之前调用, 只适用于(PollableChannels, 轮询场景),在websocket的场景中用不到org.springframework.messaging.Message<?>preSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) 在消息发送之前调用,方法中可以对消息进行修改,如果此方法返回值为空,则不会发生实际的消息发送调用
-
构造器详细资料
-
WebSocketChannelInterceptor
public WebSocketChannelInterceptor()
-
-
方法详细资料
-
preSend
public org.springframework.messaging.Message<?> preSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) 在消息发送之前调用,方法中可以对消息进行修改,如果此方法返回值为空,则不会发生实际的消息发送调用- 指定者:
preSend在接口中org.springframework.messaging.support.ChannelInterceptor- 参数:
message-Messagechannel-MessageChannel- 返回:
Message
-
postSend
public void postSend(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, boolean sent) 在消息发送后立刻调用- 指定者:
postSend在接口中org.springframework.messaging.support.ChannelInterceptor- 参数:
message-Messagechannel-MessageChannelsent- boolean值参数表示该调用的返回值
-
afterSendCompletion
public void afterSendCompletion(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, boolean sent, Exception ex) 1. 在消息发送完成后调用,而不管消息发送是否产生异常,在此方法中,我们可以做一些资源释放清理的工作 2. 此方法的触发必须是preSend方法执行成功,且返回值不为null,发生了实际的消息推送,才会触发- 指定者:
afterSendCompletion在接口中org.springframework.messaging.support.ChannelInterceptor- 参数:
message-Messagechannel-MessageChannelsent- boolean值参数表示该调用的返回值ex- 失败时抛出的 HerodotusException
-
preReceive
public boolean preReceive(org.springframework.messaging.MessageChannel channel) 在消息被实际检索之前调用, 只适用于(PollableChannels, 轮询场景),在websocket的场景中用不到- 指定者:
preReceive在接口中org.springframework.messaging.support.ChannelInterceptor- 参数:
channel- channelMessageChannel- 返回:
- 如果返回false, 则不会对检索任何消息
-
postReceive
public org.springframework.messaging.Message<?> postReceive(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel) 在检索到消息之后,返回调用方之前调用,可以进行信息修改。适用于PollableChannels,轮询场景- 指定者:
postReceive在接口中org.springframework.messaging.support.ChannelInterceptor- 参数:
message-Messagechannel-MessageChannel- 返回:
- 如果返回null, 就不会进行下一步操作
-
afterReceiveCompletion
public void afterReceiveCompletion(org.springframework.messaging.Message<?> message, org.springframework.messaging.MessageChannel channel, Exception ex) 1. 在消息接收完成之后调用,不管发生什么异常,可以用于消息发送后的资源清理 2. 只有当preReceive 执行成功,并返回true才会调用此方法 3. 适用于PollableChannels,轮询场景- 指定者:
afterReceiveCompletion在接口中org.springframework.messaging.support.ChannelInterceptor- 参数:
message-Messagechannel-MessageChannelex- 失败时抛出的 HerodotusException
-