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
totrue
. - Page through results by providing a
start
ORend
timetoken. - Retrieve a slice of the timeline by providing both a
start
ANDend
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)
Parameter | Description |
---|---|
params *Type: table | Table of history parameters. See History Parameters for more details. |
History parameters
Parameter | Description |
---|---|
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
reverse
parameterMessages 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
})