Channel Groups API for PubNub C-Core 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 C-Core SDK:
enum pubnub_res pubnub_add_channel_to_group (
pubnub_t *p,
char const *channel,
char const *channel_group
)
Parameter | Type | Required | Description |
---|---|---|---|
p | pubnub_t* | Yes | Pointer to PubNub client context. |
channel | char const* | Yes | The channel to add |
channel_group | char const* | Yes | The channel group to add to |
Basic Usage
Add Channels
static char *channel_group = "family";
enum pubnub_res res;
res = pubnub_add_channel_to_group(pn, "wife", channel_group);
return check_response(pn, res);
Rest Response from Server
{
"service" : "channel-registry",
"status" : 200,
"error" : false,
"message" : "OK"
}
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 C-Core SDK:
enum pubnub_res pubnub_list_channel_group (
pubnub_t *p,
char const *channel_group
)
Parameter | Type | Required | Description |
---|---|---|---|
p | pubnub_t* | Yes | Pointer to PubNub client context. |
channel_group | char const* | Yes | The channel group to list channels from |
Basic Usage
List Channels
static char *channel_group = "family";
pubnub_list_channel_group(ctx, channel_group);
pbresult = pubnub_await(ctx);
if (PNR_OK == pbresult) {
char const *json_response = pubnub_get(ctx);
}
Rest Response from Server
{
"status" : 200,
"payload" : {
"channels" : ["hi"],
"group" : "abcd"
},
"service" : "channel-registry",
"error" : False
}
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 C-Core SDK:
enum pubnub_res pubnub_remove_channel_from_group (
pubnub_t *p,
char const *channel,
char const *channel_group
)
Parameter | Type | Required | Description |
---|---|---|---|
p | pubnub_t* | Yes | Pointer to the PubNub client context. |
channel | char const* | Yes | The channel to remove. |
channel_group | char const* | Yes | The channel group to remove from. |
Basic Usage
Removing channels :
static char *channel_group = "family";
enum pubnub_res res;
res = pubnub_remove_channel_from_group(pn, "son", channel_group);
return check_response(pn, res);
Rest Response from Server
{
"status" : 200,
"message" : "OK",
"service" : "channel-registry",
"error" : False
}
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 C-Core SDK:
enum pubnub_res pubnub_remove_channel_group (
pubnub_t *p,
char const *channel_group
)
Parameter | Type | Required | Description |
---|---|---|---|
p | pubnub_t* | Yes | Pointer to PubNub client context. |
channel_group | char const* | Yes | The channel group to remove. |
Basic Usage
Deleting Channel Group :
static char *channel_group = "family";
enum pubnub_res res;
res = pubnub_remove_channel_group(pn, channel_group);
return check_response(pn, res);
Rest Response from Server
{
"status" : 200,
"message" : "OK",
"service" : "channel-registry",
"error" : False
}