public RemotingCommand unregisterClient(ChannelHandlerContext ctx, RemotingCommand request)
throws RemotingCommandException {
final RemotingCommand response =
RemotingCommand.createResponseCommand(UnregisterClientResponseHeader.class);
final UnregisterClientRequestHeader requestHeader =
(UnregisterClientRequestHeader) request
.decodeCommandCustomHeader(UnregisterClientRequestHeader.class);
ClientChannelInfo clientChannelInfo = new ClientChannelInfo(//
ctx.channel(),//
requestHeader.getClientID(),//
request.getLanguage(),//
request.getVersion()//
);
// 注销Producer
final String producerGroup = requestHeader.getProducerGroup();
if (producerGroup != null) {
this.brokerController.getProducerManager().unregisterProducer(producerGroup, clientChannelInfo);
}
// 注销Consumer
final String consumerGroup = requestHeader.getProducerGroup();
if (consumerGroup != null) {
this.brokerController.getConsumerManager().unregisterConsumer(consumerGroup, clientChannelInfo);
}
response.setCode(ResponseCode.SUCCESS_VALUE);