embark/site/source/docs/messages_javascript.md

56 lines
1.6 KiB
Markdown

title: Messages in JavaScript
layout: docs
---
Embark's companion library EmbarkJS comes with some convenient APIs to easily subscribe to and sending messages using messages protocols like Whisper. In this guide we'll take a closer look how this works.
Make sure to read our guide in [using EmbarkJS](/docs/javascript.html) first.
## Setting up EmbarkJS
By default Embark will initialize EmbarkJS with the provider configured at `config/communication.js`. However if we are using EmbarkJS directly or wish to change the provider configuration at runtime, we can do so using the `setProvider()` method:
```
EmbarkJS.Messages.setProvider('whisper')
```
## Listening to messages
We can subscribe to channels using the `listenTo()` method by specifying a list of channel topics like this:
```
EmbarkJS.Messages.listenTo({
topic: ['topic1', 'topic2']
}).then(message {
console.log('received: ' + message);
});
```
## Sending messages
Sending messages can be done using the `sendMessage()` method and it's entirely up to use whether we want to send plain text messages or even objects.
Here's how to send a plain text message to the `sometopic` topic:
```
EmbarkJS.Messages.sendMessage({
topic: 'sometopic',
data: 'hello world'
});
```
And this code snippet shows how to send an object structure:
```
EmbarkJS.Messages.sendMessage({
topic: 'sometopic',
data: { msg: 'hello world' }
});
```
{% notification info 'On topic arrays:' %}
Array of topics are considered an AND. In Whisper you can use another array for OR combinations of several topics e.g `["topic1", ["topic2", "topic3"]]` => `topic1 AND (topic2 OR topic 3)`.
{% endnotification %}