43 lines
1.1 KiB
Markdown
43 lines
1.1 KiB
Markdown
|
---
|
||
|
title: Whisper JavaScript example
|
||
|
---
|
||
|
|
||
|
[This link](https://github.com/gballet/whisper-chat-example) contains a full-fledged example of how to use Whisper in a small chat application.
|
||
|
|
||
|
Let's now have a look at the `sendMessage` function:
|
||
|
|
||
|
```javascript
|
||
|
sendMessage() {
|
||
|
// Start by declaring the message, we picked a JSON format with
|
||
|
// `text` as the content and `name` as the name of the user who
|
||
|
// is sending the message.
|
||
|
let msg = {
|
||
|
text: this.text,
|
||
|
name: this.name
|
||
|
};
|
||
|
|
||
|
// (code elided for clarity)
|
||
|
|
||
|
// Create the data object that will be sent to the RPC endpoint.
|
||
|
let postData = {
|
||
|
ttl: 7,
|
||
|
topic: '0x07678231',
|
||
|
powTarget: 2.01,
|
||
|
powTime: 100,
|
||
|
payload: encodeToHex(JSON.stringify(msg)),
|
||
|
};
|
||
|
|
||
|
// Set the appropriate key id.
|
||
|
if (this.asym) {
|
||
|
postData.pubKey = this.recipientPubKey;
|
||
|
postData.sig = this.asymKeyId;
|
||
|
} else
|
||
|
postData.symKeyID = this.symKeyId;
|
||
|
|
||
|
// Perform the RPC call that will tell the node to forward
|
||
|
// that message to all its neighboring nodes.
|
||
|
this.shh.post(postData);
|
||
|
|
||
|
// (code elided for clarity)
|
||
|
}
|
||
|
```
|