I’m trying to figure out if Autobahn could be the right choice for my architecture. After few days of reading documentation, I need some help
What I need is bidirectional real time messages between multiple client app ad a server app.
My server is an API endpoint written in Flask and this have to interact with another python program, to send it command and variables.
What I want to achieve is this workflow:
1 - a user connect to an API endpoint, for example www.example.com/api/mission passing the parameter ‘start=true’ or ‘machine=3’ or ‘stop=true’
2 - the flask app connect via websocket (or wamp?) to the python app listening for incoming messages
3 - the flask app authenticate
4 - the flask app send the message to the app and wait for a response (for example I want an ack for every command or I want some statistics back).
Using different endpoints and parameters you can send different commands to the python client. Moreover, I will need in the future to be able to command multiple python programs from the same flask app.
It seemed that everything I need could be done with Autobahn. I was looking to ZeroMQ but seemed too much complex, RabbitMQ has unidirectional messages.
I’m trying to modify the echo server/client example in order to send through weboscket the user keyboard input but without success, maybe because the example is not async and I’m still studying that part.
What do you think? Am I in the right path? Should I look to another technology?