Hi Alex,
thank you for your fast reply! I have to say, hearing about what you say concerning Autobahn being "production ready" sounds really good! I didn't know that Mozilla uses it.
To get a better understanding of my needs let me give you some detail about my application:
Basically we are talking about connecting multiple (100-1000) clients to a single server. These clients are smaller devices which software is running on an embedded linux system. Performance is comparable to the Raspberry Pi 1.
Those clients will "publish" values / states of their attached sensors or hardware (bridging to a microprocessor) but also "subscribe" to commands coming from the server - and which are - mostly important - for that unique client only. For example switching a unique client on or off via Web-Interface, etc.
For the "publish" part a pub/sub system will work. But I have to say that I only have been working with MQTT so far.
Beyond all this I need to group clients. For example grouping by customer - and these customers might have customers themselves - so there is a chance of adding another group. So even this might be possible with pub/sub (MQTT) but I have to add things that break the protocol a bit.
Mostly important I need that uni-directional peer-to-peer communication between client and server. And using WebSockets I am doing this with holding up a reference to all those connections and monitoring states, connected devices, etc. into a large database. This step would also be necessary using MQTT-Pub/Sub so for me there is no benefit in using Pub/Sub. All those things can also be done with WebSockets alone.
I have to admit however that after reading the tag "Pub/Sub" when studying WAMP I decided not to use it. But the Autobahn WebSocket Framework really impressed me - by reading the Code alone I can see that there was effort and quality put into.
I hope that this detail can help you making a better picture of my application. Let me know if I am totally wrong with what is WAMP. I am willing to learn and go back to it!
Last but not least (but probably better asked in a separate Post):
I am currently trying to think how to implement authentication using WebSockets only. Any advices how this can be achieved when talking about client and server being a python application and absolutely no web / http involved?
My Idea is to connect to a TLS enabled WebSocket and do the authorization based on Token / Key / Secret. But I am not pretty sure ...
Best,
Simon