Channel Groups API for PubNub Swift Native SDK
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
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 adds a channel to a channel group.
Method(s)
Adding Channels
is accomplished by using the following method(s) in the Swift SDK:
Maximum number of channels
200 channels
can be added to the channel group
per API call.
add(
channels: [String],
to group: String,
custom requestConfig: RequestConfiguration = RequestConfiguration(),
completion: `((Result<[String: [String]], Error>) -> Void)?`
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
channels | [String] | Yes | List of channels to add to the group. | |
to | String | Yes | The Channel Group to add the list of channels to. | |
custom | RequestConfiguration | Optional | RequestConfiguration() | An object that allows for per-request customization of PubNub Configuration or Network Session |
completion | ((Result<(group: String, channels: [String]), Error>) -> Void)? | Optional | nil | The async Result of the method call |
Completion Handler Result
Success
A Tuple
containing the channel-group and the Array
of channels added.
Failure
An Error
describing the failure.
Basic Usage
Add Channels
pubnub.add(
channels: ["channelSwift", "otherChannel"],
to: "SwiftGroup"
) { result in
switch result {
case let .success(response):
print("The channel-group `\(response.group)` had the following channels added: \(response.channels)")
case let .failure(error):
print("Failed Add Channels Response: \(error.localizedDescription)")
}
}
List Channels
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 the channels of the channel group.
Method(s)
Listing Channels
is accomplished by using the following method(s) in the Swift SDK:
listChannels(
for group: String,
custom requestConfig: RequestConfiguration = RequestConfiguration(),
completion: ((Result<(group: String, channels: [String]), Error>) -> Void)?
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
for | String | Yes | The channel group to list channels on. | |
custom | RequestConfiguration | Optional | RequestConfiguration() | An object that allows for per-request customization of PubNub Configuration or Network Session |
completion | ((Result<(group: String, channels: [String]), Error>) -> Void)? | Optional | nil | The async Result of the method call |
Completion Handler Result
Success
A Tuple
containing the channel-group and the Array
of its channels.
Failure
An Error
describing the failure.
Basic Usage
List Channels
pubnub.listChannels(for: "family") { result in
switch result {
case let .success(response):
print("The channel-group `\(response.group)` is made of the following channels: \(response.channels)")
case let .failure(error):
print("Failed Add Channels Response: \(error.localizedDescription)")
}
}
Remove Channels
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 the channels from the channel group.
Method(s)
Removing Channels
is accomplished by using the following method(s) in the Swift SDK:
remove(
channels: [String],
from group: String,
custom requestConfig: RequestConfiguration = RequestConfiguration(),
completion: ((Result<(group: String, channels: [String]), Error>) -> Void)?
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
channels | [String] | Yes | The list of channels to remove from the channel group. | |
from | String | Yes | The channel group to remove channels from. | |
custom | RequestConfiguration | Optional | RequestConfiguration() | An object that allows for per-request customization of PubNub Configuration or Network Session |
completion | ((Result<(group: String, channels: [String]), Error>) -> Void)? | Optional | nil | The async Result of the method call |
Completion Handler Result
Success
A Tuple
containing the channel-group and the Array
of channels removed.
Failure
An Error
describing the failure.
Basic Usage
Remove channels
pubnub.remove(
channels: ["channelSwift", "otherChannel"],
from: "SwiftGroup"
) { result in
switch result {
case let .success(response):
print("The channel-group `\(response.group)` had the following channels removed: \(response.channels)")
case let .failure(error):
print("Failed Add Channels Response: \(error.localizedDescription)")
}
}
List Channel Groups
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 the channel groups.
Method(s)
Listing Channel Groups
is accomplished by using the following method(s) in the Swift SDK:
listChannelGroups(
custom requestConfig: RequestConfiguration = RequestConfiguration(),
completion: `((Result<[String], Error>) -> Void)?`
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
custom | RequestConfiguration | Optional | RequestConfiguration() | An object that allows for per-request customization of PubNub Configuration or Network Session |
completion | ((Result<[String], Error>) -> Void)? | Optional | nil | The async Result of the method call |
Completion Handler Result
Success
List of all channel-groups.
Failure
An Error
describing the failure.
Basic Usage
List Channel Groups
pubnub.listChannelGroups { result in
switch result {
case let .success(channelGroups):
print("List of all channel-groups: \(channelGroups)")
case let .failure(error):
print("Failed Channel Groups Response: \(error.localizedDescription)")
}
}
Delete 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 the channel group.
Method(s)
Deleting Channel Group
is accomplished by using the following method(s) in the Swift SDK:
remove(
channelGroup: String,
custom requestConfig: RequestConfiguration = RequestConfiguration(),
completion: ((Result<String, Error>) -> Void)?
)
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
channelGroup | String | Yes | The channel group to delete. | |
custom | RequestConfiguration | Optional | RequestConfiguration() | An object that allows for per-request customization of PubNub Configuration or Network Session |
completion | ((Result<String, Error>) -> Void)? | Optional | nil | The async Result of the method call |
Completion Handler Result
Success
The channel-group that was removed.
Failure
An Error
describing the failure.
Basic Usage
Delete Channel Group
pubnub.delete(channelGroup: "channelSwift") { result in
switch result {
case let .success(channelGroup):
print("The channel-group that was removed: \(channelGroup)")
case let .failure(error):
print("Failed Add Channels Response: \(error.localizedDescription)")
}
}