Messaging

PRESTOplay supports bidirectional messaging between sender and receiver, so you can send custom data, events, or commands back and forth.

The message must be a plain object that can be serialized.

Messages from sender to receiver

On the sender side, use CastProxy.sendMessage to send custom messages to the receiver:

// Sender app
proxy.sendMessage({
  type: 'ping',
  value: '4',
});

Listen for these messages on the receiver side with Receiver.addMessageListener:

// Receiver app
const receiver = clpp.cast.Receiver.getInstance();
receiver.addMessageListener((message) => {
  if (message.type === 'ping') {
    // ...
  }
});

Messages from receiver to sender

On the receiver side, use Receiver.sendMessage to broadcast custom messages to all connected senders:

// Receiver app
const receiver = clpp.cast.Receiver.getInstance();
receiver.sendMessage({
  type: 'ping',
  text: 'pong',
});

Pass a senderId to message one specific sender instead:

// Receiver app
const receiver = clpp.cast.Receiver.getInstance();
receiver.sendMessage({
  type: 'response',
  data: 'some data',
}, senderId);

Listen for messages on the sender side with CastProxy.addMessageListener:

// Sender app
proxy.addMessageListener((message) => {
  if (message.type === 'ping') {
    // ...
  }
});

Message namespace

Messages are sent over the Google Cast protocol under the namespace urn:x-cast:castlabs.

Next topic: Queuing
Previous topic: Sender