[Python] Rimpiazzare Orbited

Roberto De Ioris roberto a unbit.it
Mar 1 Apr 2014 17:38:31 CEST


> Ciao,
>
> un mio collega ha avuto la brillante idea di togliere Orbited da un
> sistema web push che abbiamo, perchè voleva passare ai websocket. Così
> dall'avere N web server python che pushavano messaggi ad un singolo
> orbited (che non ha mai fatto pio) e i client web che li ricevevano sui
> loro canali siamo passati ad avere ogni client collegato con una
> connessione websocket persistente al server. Coincidentalmente da quel
> giorno abbiamo cominciato a incontrare mille problemi e il programma non
> scala più bene, chissà come mai...
>
> Sto provando a insistere a reintrodurre il message broker perché sono
> convinto che ci ha parato le chiap^W spalle per anni ma lui non vuole
> recedere dai websocket. Secondo me un broker ci vuole, anche per come
> immagino il futuro di quel sistema.
>
> Fatico a trovare un rimpiazzo drop-in di orbited su websocket: qualcosa
> a cui i client web si connettono su un canale e altri processi possono
> mandare messaggi sui canali che decidono. Sapete se esiste qualcosa del
> genere o se è necessario passare ad un server AMQP (RabbitMQ etc.)?
> Conosceta Autobahn, sapete se è promettente? Vedo che usa l'ennesimo
> nuovo protocollo di message passing, WAMP invece di Stomp... oddio ma
> quanti ne servono? Altre alternative?
>
> Scrivo qui perchè il mio collega ha letto del supporto uWSGI ai
> websocket ma io credo che si riferisca ad avere connessioni al server,
> non un message broker a sé stante. Giusto Roberto?
>

gia', pero' combinarlo con redis e una coda pub/sub e' relativamente
semplice (e soprattutto rapido). Fammi pure contattare dal tuo collega,
magari ne uscite senza un bagno di sangue...

La logica e' che l'app WSGI instaura la sessione websocket e resta in
ascolto anche su redis, ogni volta che c'e' un messaggio sul canale
websocket questo viene girato a redis, ogni volta che c'e' un messaggio su
redis viene passato al websocket. E' molto efficiente, noi lo usiamo per i
videogiochi dove la velocita' e' essenziale.


-- 
Roberto De Ioris
http://unbit.it


Maggiori informazioni sulla lista Python