Channel Groups API for Java SDK
Breaking changes in v9.0.0
PubNub Java SDK version 9.0.0 unifies the codebases for Java and Kotlin SDKs, introduces a new way of instantiating the PubNub client, and changes asynchronous API callbacks and emitted status events. These changes can impact applications built with previous versions (< 9.0.0) of the Java SDK.
For more details about what has changed, refer to Java/Kotlin SDK migration guide.
Channel groups allow PubNub developers to bundle thousands of channels into a group that can be identified by a name. These channel groups can then be subscribed to, receiving data from the many back-end channels the channel group contains.
Channel group operations
You can't publish to a channel group. You can only subscribe to it. To publish within the channel group, you need to publish to each channel individually.
Add channels to a channel group
Requires Stream Controller add-on
This method requires that the Stream Controller add-on is enabled for your key in the PubNub Admin Portal. Read the support page on enabling add-on features on your keys.
This function adds channels to a channel group.
Method(s)
Use the following method in the Java SDK:
Maximum number of channels
You can add up to 200 channels to a channel group per API call.
1this.pubnub.addChannelsToChannelGroup()
2    .channelGroup(String)
3    .channels(Array)
| Parameter | Description | 
|---|---|
channelGroup *Type: String  | The channel group to add the channels to. | 
channels *Type: Array  | The channels to add to the channel group. | 
async *Type:  Consumer<Result> | Consumer of a Result of type PNChannelGroupsAddChannelResult | 
Sample code
Reference code
Add channels
1
Response
The addChannelsToChannelGroup() does not return actionable data, be sure to check result object on the outcome of the operation by checking the result.isFailure(); or handling exception result.onFailure(exception -> { });.
List channels in a channel group
Requires Stream Controller add-on
This method requires that the Stream Controller add-on is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.
This function lists all channels in a channel group.
Method(s)
Use the following method in the Java SDK:
1pubnub.listChannelsForChannelGroup()
2    .channelGroup(String)
3    .async(result -> { /* check result */ });
| Parameter | Description | 
|---|---|
channelGroup *Type: String  | The channel group for which to list channels. | 
async *Type:  Consumer<Result> | Consumer of a Result of type PNChannelGroupsAllChannelsResult. | 
Sample code
List channels
1
Returns
The listChannelsForChannelGroup() operation returns a PNChannelGroupsAllChannelsResult which contains the following operations:
| Method | Description | 
|---|---|
getChannels()Type: List <String> | List of channels of a channel group. | 
Remove channels from a channel group
Requires Stream Controller add-on
This method requires that the Stream Controller add-on is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.
This function removes channels from a channel group.
Method(s)
Use the following method in the Java SDK:
1pubnub.removeChannelsFromChannelGroup()
2    .channelGroup(String)
3    .channels(Array)
| Parameter | Description | 
|---|---|
channels *Type: Array  | The channels to remove from the channel group. | 
channelGroup *Type: String  | The channel group from which to remove the channels. | 
asyncType:  Consumer<Result> | Consumer of a Result of type PNChannelGroupsRemoveChannelResult. | 
Sample code
Remove channels
1
Response
The removeChannelsFromChannelGroup() does not return actionable data, be sure to check result object on the outcome of the operation by checking the result.isFailure(); or handling exception result.onFailure(exception -> { });.
Delete a channel group
Requires Stream Controller add-on
This method requires that the Stream Controller add-on is enabled for your key in the Admin Portal. Read the support page on enabling add-on features on your keys.
This function deletes a channel group.
Method(s)
Use the following method in the Java SDK:
1pubnub.deleteChannelGroup()
2    .channelGroup(String)
| Parameter | Description | 
|---|---|
channelGroup *Type: String  | The channel group to delete. | 
asyncType:  Consumer<Result> | Consumer of a Result of type PNChannelGroupsDeleteGroupResult. | 
Sample code
Delete channel group
1
Response
The deleteChannelGroup() does not return actionable data, be sure to check result object on the outcome of the operation by checking the result.isFailure(); or handling exception result.onFailure(exception -> { });.