Feature Support for PubNub Go SDK
Access Manager
PubNub provides builtin enterprise-grade security with fine-grained access control to all of your PubNub applications with Access Manager, Message Layer encryption with AES256, and Transport Layer Security with TLS and SSL.
Name | Description |
---|---|
Grant | This function establishes access permissions for Access Manager by setting the read or write attributes. |
Grant Manage | This function establishes access permissions for Access Manager by setting the Manage attribute. |
Grant Delete | This function establishes access permissions for Access Manager by setting the Delete attribute. |
Root permissions for the Access Manager | When you init with secret key, you get root permissions for the Access Manager. With this feature you don't have to grant access to your servers to access channel data. The servers get all access on all channels. |
Grant version 3 | The SDK has support for Grant version 3. |
Grant Token | The SDK supports Grant Token. |
Parse Token | The SDK supports Parse Token. |
Set Token | The SDK supports Set Token. |
Revoke Token | The SDK supports Revoke Token. |
Channel Groups
Channel Groups allows PubNub developers to bundle thousands of channels into a group that can be identified by name. These Channel Groups can then be subscribed to, receiving data from the many backend-channels the channel group contains.
Name | Description |
---|---|
Add Channels | Add channel to a channel group. |
Remove Channels | Remove channel from channel group. |
Remove Channels Groups | Remove channel groups. |
List Channels In Channel Group | List all channels of a channel group. |
Presence
PubNub's Channel Presence empowers your applications to Track online and offline status of users and devices in realtime.
Name | Description |
---|---|
Here Now | Obtain information about the current state of a channel including a list of unique user IDs currently subscribed to the channel and the total occupancy count of the channel. |
Where Now | Obtain information about the current list of a channels to which a UUID is subscribed. |
Get State | Get state is used to get the key/value pairs specific to a subscriber UUID. |
Set State | Set state is used to set key/value pairs specific to a subscriber UUID. |
Heartbeat | Timeout events are triggered when the server does not hear a heartbeat from the client within a default timeout time of 280 seconds. |
Configurable Heartbeats per channel | User can start/stop heartbeats without subscription to channel or channel group. |
Presence Heartbeat call optimizations. | Presence Heartbeat call is delayed if a Subscribe call precedes it within the presence heartbeat interval. |
Here Now Refresh | If the full interval message is greater than 30KB (since the max publish payload is ∼32KB), none of the extra fields will be present. Instead there will be a <code>here_now_refresh</code> boolean field set to <code>true</code>. This indicates to the user that they should do a hereNow request to get the complete list of users present in the channel. |
Publish
Publish a message on a channel.
Name | Description |
---|---|
Store Flag | Ability to skip message from storage. |
Publish RAW JSON | Publish JSON as is. |
Publish with Metadata | Publish extra meta with the request used for Message Filtering. |
Publish using GET | Publish using HTTP GET. |
Publish using POST | Publish using HTTP POST. |
Fire | Fire method used for publishing. When a message is sent using fire, it will not be replicated to other Points of Presence, it will remain at the originating Point of Presence, and is not eligible for archiving via the Message Persistence feature. |
Replication Flag | Controls whether the message should be replicated across stores. |
TTL per published message | Offer the ability to set a per message time to live in storage. |
Publish File Message | Allows users to publish file message to a specified channel. |
Mobile Push Notifications
Mobile Push Notifications feature enables developers to bridge native PubNub publishing with third-party push notification services including Google Android Firebase Cloud Messaging (FCM) formerly known as Google Cloud Messaging (GCM) and Apple iOS Apple Push Notification Service (APNs).
Name | Description |
---|---|
Add Device To Channels | Enables push notifications on provided set of channels. |
Remove Device | Disable push notifications from all channels which is registered. |
List Channels From Device | List all channels on which push notification has been enabled. |
Remove Device From Channels | Disable push notifications on provided set of channels. |
APNS Support | SDK has support to send notifications using APNS. |
APNS2 Support | SDK has support to send notifications using APNS2. |
FCM Support | SDK has support to send notifications using FCM. |
Message Persistence
PubNub's Message Persistence feature enables developers to store messages as they are published, and retrieve them at a later time.
Name | Description |
---|---|
Reverse | Traverse the timeline in reverse starting with the oldest message first. |
Include Timetoken | Whether event dates time tokens should be included in response or not. |
Start End | Time token delimiting the start/end of time slice (exclusive) to pull messages from. |
Count of Messages on Channels | The API is a history based API that simply does a mostly normal history operation but instead of returning the messages in a channel it returns the count of messages. Without actually calling history on those channels this API gives you the ability to say if there are messages in the chat channel you can go look at further. |
Delete messages from storage | Removes the messages from the history of a specific channel. |
Fetch messages from storage | This function fetches historical messages from multiple channels. |
Count | Specifies the number of historical messages to return. |
History with meta | The SDK has support to retrieve History with metadata |
Fetch messages from storage with meta | This function fetches historical messages from multiple channels with metadata. |
Fetch messages from storage with action flags | This function fetches historical messages from multiple channels with message action flags. |
Fetch messages with file events | Has the ability to fetch messages with file events. |
Fetch messages from storage with Message Type | This function fetches historical messages from multiple channels with Message Type param in each message. |
Fetch messages from storage with UUID | This function fetches historical messages from multiple channels with UUID param in each message. |
Subscribe
This function causes the client to create an open TCP socket to the PubNub Real-Time Network and begin listening for messages on a specified channel.
Name | Description |
---|---|
Subscribe to channels | Ability to subscribe to channels. |
Subscribe to channel groups | Ability to subscribe to channel groups. |
Subscribe to presence channels | Ability to subscribe to presence channels. |
Subscribe to presence channel groups | Ability to subscribe to presence channel groups. |
Subscribe with timetoken | Subscribe with timetoken. |
Wildcard subscribe | Wildcard subscribes allow the client to subscribe to multiple channels using wildcard. E.g., if you subscribe to a.* you will get all messages for a.b, a.c, a.x. The wildcarded * portion refers to any portion of the channel string name after the dot (.). |
Filter Expression | Stream Filter allows a subscriber to apply a filter to only receive messages that satisfy the conditions of the filter. The message filter is set by the subscribing client(s) but it is applied on the server side thus preventing unwanted messages (those that do not meet the conditions of the filter) from reaching the subscriber. |
Publisher UUID | Has the publisher UUID of the published message. |
Subscribe with User State | Subscribe with User State in a single call. |
PubSub v2 compatibility | Uses PubSub v2 to make subscribe calls. |
Signal Listener | Has support to listen to Signal messages. |
App Context API Membership events listener | Has support to listen to Membership Events from App Context API. |
App Context API Space events listener | Has support to listen to Space Events from App Context API. |
App Context API User events listener | Has support to listen to User Events from App Context API. |
Message Actions events listener | Has support to listen to Action Events from Message Reactions API. |
Files Events Listener | Has support to listen to Files Events from File Sharing API. |
App Context API
The App Context API enables you to create and retrieve data associated with key objects in the PubNub realtime application platform.
Name | Description |
---|---|
Objects Filtering | Supports filtering in App Context API. |
Objects Sorting | Supports filtering in App Context API. |
Get metadata for all UUIDs | Returns a paginated list of UUID metadata, optionally including custom properties. |
Get a UUID's metadata | Returns metadata for the specified UUID, optionally including custom properties. |
Set UUID's metadata | Sets metadata for the specified UUID. |
Delete a UUID's metadata | Deletes metadata for the specified UUID. |
Get metadata for all channels | Returns metadata for all channels, optionally including custom properties. |
Get a channel's metadata | Returns metadata for the specified channel, optionally including custom properties. |
Set a channel's metadata | Sets metadata for the specified channel. |
Delete a channel's metadata | Deletes metadata for the specified channel. |
Get a UUID's channel membership metadata | Returns channel membership metadata for the specified UUID. |
Set channel membership metadata | Sets channel membership metadata for the specified UUID. |
Remove channel membership metadata | Removes channel membership metadata for the specified UUID. |
Get all members' metadata in the channel | Returns the members' metadata in the specified channel. |
Set members' metadata in the channel | Sets members' metadata in the specified channel. |
Remove members' metadata in the channel | Removes members' metadata in the specified channel. |
Manage a UUID's channel membership metadata | Sets/Removes channel membership metadata for the specified UUID. |
Manage members' metadata in the channel | Sets/Removes members' metadata in the specified channel. |
File Sharing
Allows users to upload and share files.
Name | Description |
---|---|
Send File | Allows users to upload file / data to specified channel. |
List Files | Allows users to retrieve list of files uploaded to a channel. |
Get File URL | Allows users to generate URL which can be used to download a file from a target channel. |
Delete File | Allows users to delete a file from specified channel. |
Download File | Allows users to download a file from specified channel. |
Message Reactions
SDK has support for Message Reactions.
Name | Description |
---|---|
Get Message Reactions | SDK has support to Get Message Reactions. |
Add Message Reactions | SDK has support to Add Message Reactions. |
Remove Message Reactions | SDK has support to Remove Message Reactions. |
Time
Return a 17 digit precision Unix epoch from the server.
Name | Description |
---|---|
Time | This function will return a 17 digit precision Unix epoch from the server. |
Unsubscribe
Unsubscribe from a channel/channel group.
Name | Description |
---|---|
Unsubscribe from all | Unsubscribe from all channel/channel groups. |
Unsubscribe suppress leave events | Leave request will not be sent from the SDK, if set in config. |
Others
Other Features
Name | Description |
---|---|
Process pn_other in message | When a message with JSON key named `pn_other` is published and encryption is enabled, only the value of `pn_other` will be encrypted and the rest of the message will be in plain text. This feature is useful when you want to send out encrypted push notifications. On the subscribe end, if `pn_other` is detected in the received message and encryption is enabled, only the value of `pn_other` wil be decrypted. Rest of the message will be not be decrypted. Same goes for History and Fetch. |
Telemetry | Sends back latency info to the server. |
QueryParam in all API calls | The keys and values of the variable are passed as the query string parameters of the URL called by the API. |
Create Push Payload | The SDK has support to create the push payload for use in the appropriate endpoint calls. |
Use random initialization vector (IV) | When `true`, the IV will be random for all requests and not just for file upload. When `false`, the IV will be hard-coded for all requests except file upload. |
Notify
Alerts from the SDK.
Name | Description |
---|---|
Request message count exceeded | When the number of messages arrived on a subscribe response are equal to or greater the number set in the init config, a new status message on the status callback, with the category PNRequestMessageCountExceededCategory, will be invoked. |
Signals
A lightweight alternative for small frequent indications exchanged between participants. Examples are typing indicators in chat, or geo-location information.
Name | Description |
---|---|
Send a Signal | Has support to send a Signal. |