Storage and Playback API for Lua SDK

Message Persistence gives you real-time access to the history of messages published to PubNub. Each message is timestamped to the nearest 10 nanoseconds and stored across multiple availability zones in several geographic locations. You can encrypt stored messages with AES-256 so they are not readable on PubNub’s network. For details, see Message Persistence.

You control how long messages are stored through your account’s retention policy. Options include: 1 day, 7 days, 30 days, 3 months, 6 months, 1 year, or Unlimited.

You can retrieve the following:

  • Messages
  • Message reactions
  • Files (using the File Sharing API)

History

Requires Message Persistence

Enable Message Persistence for your key in the Admin Portal. See how to enable add-on features.

This function fetches historical messages of a channel.

You can control how messages are returned and in what order.

  • Search for messages starting on the newest end of the timeline (default behavior - reverse = false).
  • Search for messages from the oldest end of the timeline by setting reverse to true.
  • Page through results by providing a start OR end timetoken.
  • Retrieve a slice of the timeline by providing both a start AND end timetoken.
  • Limit the number of messages to a specific quantity using the count parameter.
Start & End parameter usage clarity

If only the start parameter is specified (without end), you receive messages that are older than and up to that start timetoken value. If only the end parameter is specified (without start) you receive messages that match that end timetoken value and newer. Specifying values for both start and end parameters returns messages between those timetoken values (inclusive on the end value). Keep in mind that you still receive a maximum of 100 messages even if more messages meet the timetoken values. Iterative calls to history adjusting the start timetoken are necessary to page through the full set of results if more than 100 messages meet the timetoken values.

Method(s)

Use the following method(s) in the Lua SDK:

pubnub_obj:history(params)
* required
ParameterDescription
params *
Type: table
Table of history parameters. See History Parameters for more details.

History parameters

* required
ParameterDescription
Channel *
Type: string
Default:
none
The channel to get history for.
callback *
Type: function(r)
Default:
none
The function to call with received history.
error
Type: function(r)
Default:
function(r) end
The function to call on failure, with result.
start
Type: integer or string
Default:
none
The timetoken to start history from.
stop
Type: integer or string
Default:
none
The timetoken to stop history at.
reverse
Type: boolean
Default:
false
Whether to get the history in reverse (from chronological) order.
count
Type: integer
Default:
10
Maximum number of messages to get in history (cannot be more than 100).
tip
Using the reverse parameter

Messages are always returned sorted in ascending time direction from history regardless of reverse. The reverse direction matters when you have more than 100 (or count, if it's set) messages in the time interval, in which case reverse determines the end of the time interval from which it should start retrieving the messages.

Sample code

Retrieve the last 100 messages on a channel:

pubnub_obj:history({
channel = "demo",
count = 100,
callback = function(response)
textout(response)
end,
error = function (response)
textout(response)
end
})
Last updated on