Utility Methods API for Kotlin SDK
Breaking changes in v9.0.0
PubNub Kotlin SDK version 9.0.0 unifies the codebases for Kotlin and Java 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 Kotlin SDK.
For more details about what has changed, refer to Java/Kotlin SDK migration guide.
The methods on this page are utility methods that don't fit into other categories.
Request execution
Most PubNub Kotlin SDK method invocations return an Endpoint object, which allows you to decide whether to perform the operation synchronously or asynchronously.
You must invoke the .sync() or .async() method on the Endpoint to execute the request, or the operation will not be performed.
1val channel = pubnub.channel("channelName")
2
3channel.publish("This SDK rules!").async { result ->
4    result.onFailure { exception ->
5        // Handle error
6    }.onSuccess { value ->
7        // Handle successful method result
8    }
9}
Create push payload
This method creates the push payload for use in the appropriate endpoint calls.
Method(s)
1val pushPayloadHelper = PushPayloadHelper()
2
3val fcmPayloadV2 = FCMPayloadV2()
4val apnsPayload = APNSPayload()
5
6pushPayloadHelper.fcmPayloadV2 = fcmPayloadV2
7pushPayloadHelper.apnsPayload = apnsPayload
| Parameter | Description | 
|---|---|
| apnsPayloadType:  APNSPayload | Set APNS and APNS2 Payload. Associated devices will receive only the data supplied here within the pn_apnskey. | 
| fcmPayloadV2Type:  FCMPayloadV2 | Set FCM Payload V2. Associated devices will receive only the data supplied here within the pn_fcmkey. | 
| commonPayloadType:  Map<String, Any> | Set common Payload. Native PubNub subscribers will receive the data provided here, together with the pn_apnsandpn_fcmobjects. | 
| build*Type:  Map<String, Any> | Builds the payload from the values set using the parameters. | 
Sample code
Reference code
Create push payload
1
Response
The PushPayloadHelper#build() operation returns a Map<String, Any> which can be passed directly as the message parameter to the pubnub.publish() method.
Destroy
Destroy frees up the threads and allows for clean exit.
Method(s)
1destroy()
Sample code
1
Returns
None
Get subscribed channels groups
Returns all the subscribed channel groups in a List<String>.
Method(s)
To Get Subscribe Channel Groups you can use the following method(s) in the Kotlin SDK:
1fun getSubscribedChannelGroups(): List<String>
Sample code
1
Response
1["channel1", "channel2"]
Get subscribed channels
Returns all the subscribed channels in a List<String>.
Method(s)
To Get Subscribe Channels you can use the following method(s) in the Kotlin SDK:
1fun getSubscribedChannels(): List<String>
Sample code
1
Response
1["channel1", "channel2"]
Disconnect
Call the disconnect() method to force the SDK to stop all requests to PubNub server when there are active subscribe channels.
Method(s)
To disconnect() the data transmission you can use the following method(s) in Kotlin SDK.
1disconnect()
This method doesn't take any arguments.
Sample code
1
Reconnect
Call the reconnect() method to force the SDK to try and reach out PubNub.
Method(s)
To reconnect() the data you can use the following method(s) in Kotlin SDK.
1reconnect(timeout: Long)
| Parameter | Description | 
|---|---|
| timeoutType:  Long | Timetoken to reconnect from. | 
Sample code
1
Timetoken to date
The timetokenToInstant() method of the TimetokenUtil class converts a PubNub timetoken (a unique identifier for each message sent and received in a PubNub channel that is a number of 100-nanosecond intervals since January 1, 1970) to an Instant object representing the corresponding date and time.
Use this method when you want to display the timetoken of each message or event in the message history in a human-readable format.
Method signature
1TimetokenUtil.timetokenToInstant(timetoken: Long): Instant
Input
| Parameter | Description | 
|---|---|
| timetoken*Type:  LongDefault: n/a | Represents the PubNub timetoken to convert into a human-readable date format. | 
Output
| Type | Description | 
|---|---|
| Instant | The human-readable date representation of the timetoken. | 
Sample code
Convert a timetoken value of 17276954606232118 to a human-readable date and time format.
1
Date to timetoken
The instantToTimetoken() method of the TimetokenUtil class converts the Instant object representing the corresponding date and time into a PubNub timetoken (a unique identifier for each message sent and received in a PubNub channel that is a number of 100-nanosecond intervals since January 1, 1970).
Use this method to represent a specific date and time as a PubNub timetoken value, for example, to retrieve messages from a PubNub channel at a particular date and time.
Method signature
1TimetokenUtil.instantToTimetoken(instant: Instant): Long
Input
| Parameter | Description | 
|---|---|
| instant*Type:  InstantDefault: n/a | Represents the date and time to convert into a PubNub timetoken. | 
Output
| Type | Description | 
|---|---|
| Long | Converted timetoken value. | 
Sample code
Convert a human-readable date and time, September 30, 2024 12:12:24 GMT, to a timetoken.
1
Unix timestamp to timetoken
The unixToTimetoken() method of the TimetokenUtil class converts a Unix timestamp (a number of seconds since January 1, 1970) to a PubNub timetoken (a unique identifier for each message sent and received in a PubNub channel that is a number of 100-nanosecond intervals since January 1, 1970).
Use this method when you need a timetoken to retrieve historical messages with a specific timestamp range from Message Persistence.
Method signature
This method takes the following parameters:
1TimetokenUtil.unixToTimetoken(unixTime: Long): Long 
Input
| Parameter | Description | 
|---|---|
| unixTime*Type:  LongDefault: n/a | Represents the Unix timestamp to convert into a PubNub timetoken. | 
Output
| Type | Description | 
|---|---|
| Long | Converted timetoken value. | 
Sample code
Convert a Unix timestamp value of 1727866935316 representing 2024-10-02 11:02:15.316 to PubNub timetoken:
1
Timetoken to Unix timestamp
The timetokenToUnix() method of the TimetokenUtil class converts a PubNub timetoken (a unique identifier for each message sent and received in a PubNub channel that is a number of 100-nanosecond intervals since January 1, 1970) to a Unix timestamp (a number of seconds since January 1, 1970).
Use this method to convert PubNub timetoken for use in another context or system that requires a Unix timestamp.
Method signature
1TimetokenUtil.timetokenToUnix(timetoken: Long): Long 
Input
| Parameter | Description | 
|---|---|
| timetoken*Type:  LongDefault: n/a | Represents the PubNub timetoken to convert into a Unix timestamp. | 
Output
| Type | Description | 
|---|---|
| Long | Converted Unix timestamp value. | 
Sample code
Convert a PubNub timetoken 17276954606232118 representing 2024-09-30 11:24:20.623211800 to Unix time:
1