Own network protocol

Tim Chase python.list at tim.thechases.com
Mon Dec 29 06:59:26 EST 2014


On 2014-12-29 00:34, pfranken85 at gmail.com wrote:
> Am Samstag, 27. Dezember 2014 14:19:21 UTC+1 schrieb Tim Chase:
> > - do clients need to know if they missed a message? (somebody
> >   disconnected from the LAN for a moment)
> 
> This would be nice indeed. At least, the user should be notified
> that the connection was lost and the current values may not be
> uptodate any more.

This sounds like exactly the job that a message bus/queue was
designed for.  RabbitMQ or ZeroMQ are often the go-to solutions for
this:

http://www.rabbitmq.com/how.html
http://zeromq.org/intro:read-the-manual

and take care of all the ugly edge cases.  Your server just pushes
notification messages into the queue, and the clients subscribe to
those notifications (known as the pub/sub model).  For example

http://zguide.zeromq.org/page:all#Getting-the-Message-Out

> > - are all your clients on the same IP subnet? (you could use a
> >   broadcast packet)
> 
> yes, this assumption can be made.

Both RabbitMQ and ZeroMQ should support broadcast packets if this is
a case you want to optimize for.

> Introducing a possible security layer is something I would like to
> do in the future, so the selection of the network protocol/system
> should definitely keep this in mind.

It's certainly the sort of thing you'd want to build in from the
start.  Fortunately, it sounds like most of what you would want to do
can be solved by encrypting and/or signing the messages that you put
into the message bus.

> What do you think of the RPyC?

I don't have any experience with it personally, but I have found
Steven to be a fairly reliable source of trustworthy information, so
on that alone I'd be willing to investigate RPyC.

-tkc







More information about the Python-list mailing list