K
- Key type.V
- Value type.public class PubSubCommandHandler<K,V> extends CommandHandler
ChannelHandler
responsible for writing Redis Pub/Sub commands and reading the response stream from the
server. PubSubCommandHandler
accounts for Pub/Sub message notification calling back
PubSubEndpoint.notifyMessage(PubSubMessage)
. Redis responses can be interleaved in the sense that a response contains
a Pub/Sub message first, then a command response. Possible interleave is introspected via ResponseHeaderReplayOutput
and decoding hooks.CommandHandler.LifecycleState
ChannelHandler.Sharable
Constructor and Description |
---|
PubSubCommandHandler(ClientOptions clientOptions,
ClientResources clientResources,
RedisCodec<K,V> codec,
PubSubEndpoint<K,V> endpoint)
Initialize a new instance.
|
Modifier and Type | Method and Description |
---|---|
protected void |
afterDecode(ChannelHandlerContext ctx,
RedisCommand<?,?,?> command)
Hook method called after command completion.
|
protected boolean |
canComplete(RedisCommand<?,?,?> command)
Decoding hook: Can the command be completed.
|
protected boolean |
canDecode(ByteBuf buffer)
Decoding hook: Can the buffer be decoded to a command.
|
void |
channelInactive(ChannelHandlerContext ctx) |
protected void |
complete(RedisCommand<?,?,?> command)
Decoding hook: Complete a command.
|
protected void |
decode(ChannelHandlerContext ctx,
ByteBuf buffer) |
protected CommandOutput<?,?,?> |
getCommandOutput(RedisCommand<?,?,?> command)
Decoding hook: Retrieve
CommandOutput for RedisCommand decoding. |
protected void |
notifyPushListeners(PushMessage notification) |
channelActive, channelRead, channelRegistered, channelUnregistered, decode, decode, drainQueue, exceptionCaught, getChannelId, getEndpoint, getStack, getState, isClosed, isPushDecode, setState, userEventTriggered, write
bind, close, connect, deregister, disconnect, flush, read
channelReadComplete, channelWritabilityChanged
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
handlerAdded, handlerRemoved
public PubSubCommandHandler(ClientOptions clientOptions, ClientResources clientResources, RedisCodec<K,V> codec, PubSubEndpoint<K,V> endpoint)
clientOptions
- client options for this connection, must not be null
clientResources
- client resources for this connectioncodec
- Codec.endpoint
- the Pub/Sub endpoint for Pub/Sub callback.public void channelInactive(ChannelHandlerContext ctx) throws Exception
channelInactive
in interface ChannelInboundHandler
channelInactive
in class CommandHandler
Exception
ChannelInboundHandlerAdapter.channelInactive(io.netty.channel.ChannelHandlerContext)
protected void decode(ChannelHandlerContext ctx, ByteBuf buffer) throws InterruptedException
decode
in class CommandHandler
InterruptedException
protected boolean canDecode(ByteBuf buffer)
CommandHandler
canDecode
in class CommandHandler
protected boolean canComplete(RedisCommand<?,?,?> command)
CommandHandler
canComplete
in class CommandHandler
protected void complete(RedisCommand<?,?,?> command)
CommandHandler
complete
in class CommandHandler
RedisCommand.complete()
protected CommandOutput<?,?,?> getCommandOutput(RedisCommand<?,?,?> command)
CommandHandler
CommandOutput
for RedisCommand
decoding.getCommandOutput
in class CommandHandler
RedisCommand.getOutput()
protected void notifyPushListeners(PushMessage notification)
notifyPushListeners
in class CommandHandler
protected void afterDecode(ChannelHandlerContext ctx, RedisCommand<?,?,?> command)
CommandHandler
afterDecode
in class CommandHandler
Copyright © 2022 lettuce.io. All rights reserved.