Module to provide a Multi-producer, Multi-consumer FIFO message channel.
Demo: https://codesandbox.io/s/mpmc-demo-7cy89ub
import { mpmc } from '...';
interface Message { uid: number, data: Record<string, unknown> };
const [ sender, recv ] = mpmc<Messaage>();
// Listen to any incoming messages
const unsubscribe = recv.subscribe((msg) => {
// ...do something with data
});
sender.send({ uid: 123, data: {} });
export const sender2 = sender.clone();
// Close the channel for every sender and receiver
sender2.close();
// Stop listening to any incoming messages;
unsubscribe()