public interface ChannelGroup extends java.util.Set<Channel>, java.lang.Comparable<ChannelGroup>
Set that contains open Channels and provides
various bulk operations on them. Using ChannelGroup, you can
categorize Channels into a meaningful group (e.g. on a per-service
or per-state basis.) A closed Channel is automatically removed from
the collection, so that you don't need to worry about the life cycle of the
added Channel. A Channel can belong to more than one
ChannelGroup.
Channels
If you need to broadcast a message to more than one Channel, you can
add the Channels associated with the recipients and call write(Object):
ChannelGrouprecipients = newDefaultChannelGroup(GlobalEventExecutor.INSTANCE); recipients.add(channelA); recipients.add(channelB); .. recipients.write(Unpooled.copiedBuffer( "Service will shut down for maintenance in 5 minutes.",CharsetUtil.UTF_8));
ChannelGroup
If both ServerChannels and non-ServerChannels exist in the
same ChannelGroup, any requested I/O operations on the group are
performed for the ServerChannels first and then for the others.
This rule is very useful when you shut down a server in one shot:
ChannelGroupallChannels = newDefaultChannelGroup(GlobalEventExecutor.INSTANCE); public static void main(String[] args) throws Exception {ServerBootstrapb = newServerBootstrap(..); ... b.childHandler(new MyHandler()); // Start the server b.getPipeline().addLast("handler", new MyHandler());ChannelserverChannel = b.bind(..).sync(); allChannels.add(serverChannel); ... Wait until the shutdown signal reception ... // Close the serverChannel and then all accepted connections. allChannels.close().awaitUninterruptibly(); } public class MyHandler extendsChannelInboundHandlerAdapter{@Overridepublic void channelActive(ChannelHandlerContextctx) { // closed on shutdown. allChannels.add(ctx.channel()); super.channelActive(ctx); } }
| Modifier and Type | Method and Description |
|---|---|
ChannelGroupFuture |
close()
Closes all
Channels in this group. |
ChannelGroupFuture |
close(ChannelMatcher matcher)
Closes all
Channels in this group that match the given ChannelMatcher. |
ChannelGroupFuture |
deregister()
Deprecated.
This method will be removed in the next major feature release.
Deregister all
Channels in this group from their EventLoop.
Please note that this operation is asynchronous as Channel.deregister() is. |
ChannelGroupFuture |
deregister(ChannelMatcher matcher)
Deprecated.
This method will be removed in the next major feature release.
Deregister all
Channels in this group from their EventLoop that match the given
ChannelMatcher. Please note that this operation is asynchronous as Channel.deregister() is. |
ChannelGroupFuture |
disconnect()
Disconnects all
Channels in this group from their remote peers. |
ChannelGroupFuture |
disconnect(ChannelMatcher matcher)
Disconnects all
Channels in this group from their remote peers,
that match the given ChannelMatcher. |
ChannelGroup |
flush()
Flush all
Channels in this
group. |
ChannelGroup |
flush(ChannelMatcher matcher)
Flush all
Channels in this group that match the given ChannelMatcher. |
ChannelGroupFuture |
flushAndWrite(java.lang.Object message)
Deprecated.
Use
writeAndFlush(Object) instead. |
ChannelGroupFuture |
flushAndWrite(java.lang.Object message,
ChannelMatcher matcher)
Deprecated.
Use
writeAndFlush(Object, ChannelMatcher) instead. |
java.lang.String |
name()
Returns the name of this group.
|
ChannelGroupFuture |
write(java.lang.Object message)
Writes the specified
message to all Channels in this
group. |
ChannelGroupFuture |
write(java.lang.Object message,
ChannelMatcher matcher)
|
ChannelGroupFuture |
writeAndFlush(java.lang.Object message)
Shortcut for calling
write(Object) and flush(). |
ChannelGroupFuture |
writeAndFlush(java.lang.Object message,
ChannelMatcher matcher)
Shortcut for calling
write(Object) and flush() and only act on
Channels that match the ChannelMatcher. |
java.lang.String name()
ChannelGroupFuture write(java.lang.Object message)
message to all Channels in this
group. If the specified message is an instance of
ByteBuf, it is automatically
duplicated to avoid a race
condition. The same is true for ByteBufHolder. Please note that this operation is asynchronous as
Channel.write(Object) is.ChannelGroupFuture write(java.lang.Object message, ChannelMatcher matcher)
message to all Channels in this
group that match the given ChannelMatcher. If the specified message is an instance of
ByteBuf, it is automatically
duplicated to avoid a race
condition. The same is true for ByteBufHolder. Please note that this operation is asynchronous as
Channel.write(Object) is.ChannelGroupFuture instance that notifies when
the operation is done for all channelsChannelGroup flush()
Channels in this
group. If the specified messages are an instance of
ByteBuf, it is automatically
duplicated to avoid a race
condition. Please note that this operation is asynchronous as
Channel.write(Object) is.ChannelGroupFuture instance that notifies when
the operation is done for all channelsChannelGroup flush(ChannelMatcher matcher)
Channels in this group that match the given ChannelMatcher.
If the specified messages are an instance of
ByteBuf, it is automatically
duplicated to avoid a race
condition. Please note that this operation is asynchronous as
Channel.write(Object) is.ChannelGroupFuture instance that notifies when
the operation is done for all channelsChannelGroupFuture writeAndFlush(java.lang.Object message)
write(Object) and flush().@Deprecated ChannelGroupFuture flushAndWrite(java.lang.Object message)
writeAndFlush(Object) instead.ChannelGroupFuture writeAndFlush(java.lang.Object message, ChannelMatcher matcher)
write(Object) and flush() and only act on
Channels that match the ChannelMatcher.@Deprecated ChannelGroupFuture flushAndWrite(java.lang.Object message, ChannelMatcher matcher)
writeAndFlush(Object, ChannelMatcher) instead.ChannelGroupFuture disconnect()
Channels in this group from their remote peers.ChannelGroupFuture instance that notifies when
the operation is done for all channelsChannelGroupFuture disconnect(ChannelMatcher matcher)
Channels in this group from their remote peers,
that match the given ChannelMatcher.ChannelGroupFuture instance that notifies when
the operation is done for all channelsChannelGroupFuture close()
Channels in this group. If the Channel is
connected to a remote peer or bound to a local address, it is
automatically disconnected and unbound.ChannelGroupFuture instance that notifies when
the operation is done for all channelsChannelGroupFuture close(ChannelMatcher matcher)
Channels in this group that match the given ChannelMatcher.
If the Channel is connected to a remote peer or bound to a local address, it is
automatically disconnected and unbound.ChannelGroupFuture instance that notifies when
the operation is done for all channels@Deprecated ChannelGroupFuture deregister()
Channels in this group from their EventLoop.
Please note that this operation is asynchronous as Channel.deregister() is.ChannelGroupFuture instance that notifies when
the operation is done for all channels@Deprecated ChannelGroupFuture deregister(ChannelMatcher matcher)
Channels in this group from their EventLoop that match the given
ChannelMatcher. Please note that this operation is asynchronous as Channel.deregister() is.ChannelGroupFuture instance that notifies when
the operation is done for all channelsCopyright © 2008–2018 The Netty Project. All rights reserved.