2022-05-10 19:42:15 -04:00
|
|
|
import * as React from 'react';
|
|
|
|
|
|
|
|
|
|
import { StyleSheet, View, Text } from 'react-native';
|
2022-05-15 11:36:30 -04:00
|
|
|
import { defaultPubsubTopic, newNode, start, stop, peerID, relayEnoughPeers, listenAddresses, connect, peerCnt, peers, relayPublish, relayUnsubscribe, relaySubscribe, WakuMessage, onMessage } from '@waku/react-native';
|
2022-05-10 19:42:15 -04:00
|
|
|
|
|
|
|
|
export default function App() {
|
|
|
|
|
const [result, setResult] = React.useState<string | undefined>();
|
|
|
|
|
|
2022-07-08 09:53:30 -04:00
|
|
|
const delay = ms => new Promise(res => setTimeout(res, ms));
|
2022-05-10 19:42:15 -04:00
|
|
|
|
|
|
|
|
React.useEffect(() => {
|
|
|
|
|
(async () => {
|
2022-05-12 19:41:31 -04:00
|
|
|
await newNode(null); // TODO: This must be called only once
|
2022-05-10 19:42:15 -04:00
|
|
|
await start(); // // TODO: This must be called only once
|
|
|
|
|
|
|
|
|
|
console.log("The node ID:", await peerID())
|
|
|
|
|
|
|
|
|
|
await relaySubscribe()
|
|
|
|
|
|
|
|
|
|
onMessage(event => {
|
2022-05-11 18:04:53 -04:00
|
|
|
console.log("Message Received: ", event)
|
2022-05-10 19:42:15 -04:00
|
|
|
})
|
|
|
|
|
|
2022-05-11 18:04:53 -04:00
|
|
|
console.log("enoughPeers?", await relayEnoughPeers())
|
|
|
|
|
console.log("addresses", await listenAddresses())
|
|
|
|
|
console.log("connecting...")
|
|
|
|
|
|
|
|
|
|
await connect("/dns4/node-01.ac-cn-hongkong-c.wakuv2.test.statusim.net/tcp/30303/p2p/16Uiu2HAkvWiyFsgRhuJEb9JfjYxEkoHLgnUQmr1N5mKWnYjxYRVm", 5000)
|
|
|
|
|
|
|
|
|
|
console.log("connected!")
|
|
|
|
|
|
|
|
|
|
console.log("PeerCNT", await peerCnt())
|
|
|
|
|
console.log("Peers", await peers())
|
|
|
|
|
|
2022-05-10 19:42:15 -04:00
|
|
|
let msg: WakuMessage = new WakuMessage()
|
|
|
|
|
msg.contentTopic = "ABC"
|
|
|
|
|
msg.payload = new Uint8Array([1, 2, 3, 4, 5])
|
|
|
|
|
msg.timestamp = Date.now();
|
|
|
|
|
msg.version = 0;
|
|
|
|
|
|
|
|
|
|
let messageID = await relayPublish(msg);
|
|
|
|
|
|
|
|
|
|
console.log("The messageID", messageID)
|
|
|
|
|
|
2022-07-08 09:53:30 -04:00
|
|
|
// await delay(5000) // Waiting 5s before unsubscribing
|
|
|
|
|
|
|
|
|
|
// console.log("Unsubscribing and stopping node...")
|
|
|
|
|
|
|
|
|
|
// await relayUnsubscribe();
|
2022-05-12 19:41:31 -04:00
|
|
|
|
2022-07-08 09:53:30 -04:00
|
|
|
// await stop(); // TODO: This must be called only once
|
2022-05-10 19:42:15 -04:00
|
|
|
})();
|
|
|
|
|
|
|
|
|
|
defaultPubsubTopic().then(setResult);
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<View style={styles.container}>
|
|
|
|
|
<Text>Result: {result}</Text>
|
|
|
|
|
</View>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const styles = StyleSheet.create({
|
|
|
|
|
container: {
|
|
|
|
|
flex: 1,
|
|
|
|
|
alignItems: 'center',
|
|
|
|
|
justifyContent: 'center',
|
|
|
|
|
},
|
|
|
|
|
box: {
|
|
|
|
|
width: 60,
|
|
|
|
|
height: 60,
|
|
|
|
|
marginVertical: 20,
|
|
|
|
|
},
|
|
|
|
|
});
|