Updating messages (deprecated)
Use Chat SDKs
This documentation is deprecated. Use any of our dedicated Chat SDKs to quickly implement chat functionality in your application.
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