Updating messages
Since PubNub stores all messages in a time-series database, it doesn’t expose an API to directly update a message. However, clients can update messages by passing another version of the message using the Message Reactions feature.
User ID / UUID
User ID is also referred to as UUID
/uuid
in some APIs and server responses but holds the value of the userId
parameter you set during initialization.
Update a message
Use the addMessageAction
method to update a published message after it has been published by adding an action to it.
- JavaScript
- Swift
- Java
- Unity
1pubnub.addMessageAction(
2 {
3 channel: 'main'
4 messageTimetoken: '15610547826970040',
5 action: {
6 type: 'updated',
7 value: 'Hello World! (fixed typo)',
8 },
9 },
10 function(status, response) {
11 }
12);
1extension MyAppMessageAction: MessageAction {}
2
3let action = MyAppMessageAction(type: "updated", value: "Hello World! (fixed typo)")
4
5pubnub.addMessageAction(
6 channel: "main",
7 message: action,
8 messageTimetoken: 15610547826970040
9) { result in
10 switch result {
11 case let .success(response):
12 print("Successfully Message Reaction Add Response: \(response)")
13 case let .failure(error):
14 print("Error from failed response: \(error.localizedDescription)")
15 }
show all 16 lines1pubnub.addMessageAction()
2 .channel("main")
3 .messageAction(new PNMessageAction()
4 .setType("updated")
5 .setValue("Hello World! (fixed typo)")
6 .setMessageTimetoken(15610547826970040L)
7 )
8 .async(result -> {
9 result.onSuccess(res -> {
10 System.out.println(res.getType());
11 System.out.println(res.getValue());
12 System.out.println(res.getUuid());
13 System.out.println(res.getActionTimetoken());
14 System.out.println(res.getMessageTimetoken());
15 }).onFailure(exception -> {
show all 18 lines1MessageActionAdd messageAct = new MessageActionAdd();
2messageAct.ActionType = "updated";
3messageAct.ActionValue = "Hello World! (fixed typo)";
4
5pubnub.AddMessageActions().Channel("main").MessageAction(messageAct).MessageTimetoken(15610547826970040).Async((result, status) => {
6 if (!status.Error) {
7 Debug.Log("result.ActionTimetoken: " + result.ActionTimetoken);
8 Debug.Log("result.ActionType: " + result.ActionType);
9 Debug.Log("result.ActionValue: " + result.ActionValue);
10 Debug.Log("result.MessageTimetoken: " + result.MessageTimetoken);
11 Debug.Log("result.UserID: " + result.UserId);
12 } else {
13 Debug.Log(status.Error);
14 Debug.Log(status.ErrorData.Info);
15 }
show all 16 linesMessage update event
PubNub triggers events when messages are updated using message reactions. Clients subscribed to the channel will receive these events.
1{
2 "channel":"main",
3 "subscription":null,
4 "timetoken":"15610547826970040",
5 "publisher":"user-1",
6 "message":{
7 "source":"actions",
8 "version":"1.0",
9 "action":"added",
10 "data":{
11 "type":"updated",
12 "value":"Hello World! (fixed typo)",
13 "messageTimetoken":"15610547826970040",
14 "actionTimetoken":"15610547826999081"
15 }
show all 17 lines