paperprograms icon indicating copy to clipboard operation
paperprograms copied to clipboard

Proposal: Event API

Open biowaffeln opened this issue 6 years ago • 1 comments

idea

I would like to propose an API for papers to communicate with each other by sending events. The idea came from a usecase like in this tweet - basically a setup in which one has a keyboard-paper that emits events (e.g. keypress) and sends them to another paper, which can then handle those events.

the API

The API would look similar to that of the Node Event API. A paper could emit events like so:

/* paper.emit(eventname, paperNumber, data) */
paper.emit('keypress', '123', {key: 'a'})

with the second parameter specifying the paper to which you want to send the event. Alternatively one could also have a broadcast method if one wanted to send an event to all papers:

paper.broadcast('keypress', {key: 'a'})

and handling of events would look like so:

paper.on('keypress', function(data) {
  // do something
})  

Any opinions on that?

biowaffeln avatar May 21 '18 14:05 biowaffeln

You can already send and receive events using BroadcastChannel, which is why I didn't add it to the API originally. Might be nice to add some examples in the documentation though?

janpaul123 avatar May 21 '18 15:05 janpaul123