Video SDK usePubsub Hook - React Native
usePubSub Hook​
usePubSub
takes all the properties and events as parameters and returns all the properties and methods to work pubsub instance.
usePubSub example​
import { usePubSub } from "@videosdk.live/react-native-sdk";
var topic = "CHAT";
function onMessageReceived(message) {
console.log("New Message:", message);
}
function onOldMessagesReceived(messages) {
console.log("Old Messages:", messages);
}
const { publish, messages } = usePubSub(topic, {
onMessageReceived,
onOldMessagesReceived,
});
Parameters​
topic​
type :
String
Represents the topic for which you are publishing and getting a message.
onMessageReceived​
onMessageReceived()
will be triggered when a new message is published for the subscribed topic with the message object.
onOldMessagesReceived​
onOldMessagesReceived()
will be triggered once when you subscribe to the topic and will receive all the old messages present for that topic as an array of message object.message
published withpersist
astrue
will only be available through this callback.
Returns​
publish()​
publish()
is used to publish the the message for the the particulartopic
.
Parameters​
message​
type :
String
Message that has been published on the specific topic.
options​
type :
Object
This specifies the options for publish. You can specify following properties.
persist
: Whenpersist
is set totrue
, that message will be retained for upcoming participants.sendOnly
: If you want to send a message to specific participants, you can pass their respectiveparticipantId
here. If you don't provide any IDs, the message will be sent to all participants by default.
payload​
type :
Object
If you need to include additional information along with a message, you can pass here.
Example​
const { publish, messages } = usePubSub("CHAT");
const sendMessage = (message) => {
publish(message, { persist: true }, null , null);
};
sendMessage("Hello");
messages​
messages
is an array of message objects which will hold all the persisted messages.
{
id: String,
message: String,
senderId: String,
senderName: String,
timestamp: String,
topic: String,
payload: Object,
}
Got a Question? Ask us on discord