mirror of https://github.com/waku-org/js-waku.git
Handle incoming messages
This commit is contained in:
parent
5eb14d7826
commit
d643735296
|
@ -33,6 +33,33 @@ function App() {
|
||||||
});
|
});
|
||||||
}, [waku, wakuStatus]);
|
}, [waku, wakuStatus]);
|
||||||
|
|
||||||
|
const processIncomingMessage = React.useCallback((wakuMessage) => {
|
||||||
|
// Empty message?
|
||||||
|
if (!wakuMessage.payload) return;
|
||||||
|
|
||||||
|
// Decode the protobuf payload
|
||||||
|
const { timestamp, text } = proto.SimpleChatMessage.decode(
|
||||||
|
wakuMessage.payload
|
||||||
|
);
|
||||||
|
const time = new Date();
|
||||||
|
time.setTime(timestamp);
|
||||||
|
|
||||||
|
// For now, just log new messages on the console
|
||||||
|
console.log(`message received at ${time.toString()}: ${text}`);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
if (!waku) return;
|
||||||
|
|
||||||
|
// Pass the content topic to only process messages related to your dApp
|
||||||
|
waku.relay.addObserver(processIncomingMessage, [ContentTopic]);
|
||||||
|
|
||||||
|
// `cleanUp` is called when the component is unmounted, see ReactJS doc.
|
||||||
|
return function cleanUp() {
|
||||||
|
waku.relay.deleteObserver(processIncomingMessage, [ContentTopic]);
|
||||||
|
};
|
||||||
|
}, [waku, wakuStatus, processIncomingMessage]);
|
||||||
|
|
||||||
const sendMessageOnClick = () => {
|
const sendMessageOnClick = () => {
|
||||||
// Check Waku is started and connected first.
|
// Check Waku is started and connected first.
|
||||||
if (wakuStatus !== 'Ready') return;
|
if (wakuStatus !== 'Ready') return;
|
||||||
|
|
Loading…
Reference in New Issue