Skip to content

jonocole/PlayBus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 

Repository files navigation

PlayBus
=======

An interprocess message bus.

If no bus is running then a client will become the master node.
  
If the master node drops its connection then another client node
will become the master and all other clients will connect to this.
 
This bus is designed to be run on a single host using local servers.
the server mediation is handled at the kernel level by exploiting the 
logic that allows only one process to listen on a named pipe.

This code will not work across distributed hosts as no master node
mediation is carried out. This could be extended by using a known 
distributed mediation protocol.

Usage
=====
There is currently little documentation in the source code but you can
get an idea of how to use it by looking at the inspector util - this is
a small app that watches the "PlaybusTest" bus and allows you to sendQueries.

Building the Inspector
======================
cd utils/inspector
qmake
make

Known Issues
============
The protocol deals with raw byte arrays but each message is new line separated
therefore it is not possible to send any data with \n in it. This needs an update
in the protocol to send length byte(s) before the message.

Windows seemingly allows > 1 process to listen on a named pipe. As a result the
bus currently wont work on windows. My current idea for a workaround is to use
shared memory (which can only be created by 1 process) and then the creator starts
listening.

About

An interprocess message bus

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages