Bonjour,
Déjà, une question me vient à l’esprit : Quel est/sont ton/tes clients ? As-tu une application lourde et une application légère ou tu es dans un autre cas ?
Ensuite, les websockets, comme leur nom l’indique, c’est du web. Autrement dit, tu ne peux les utiliser qu’avec des applications web (donc le client est forcément un langage navigateur). Cependant, il y a bien sûr la notion de sockets qui est, elle, universelle et dont des API existe depuis longtemps (et normalement compatibles websockets). Cf. https://fr.wikipedia.org/wiki/WebSocket, bien que la page ne me semble pas à jour. Je me permets cette remarque en raison de ton client python qui ne répond pas à la condition « est un navigateur ».
Aujourd’hui, leur implémentation est plutôt correcte dans les navigateurs (cf. http://caniuse.com/#search=websocket). Je ne dirai donc pas de ne pas les utiliser. Cependant, il ne faut pas ne jouer qu’avec elles.
N’utiliser les sockets que pour les transferts de message en temps réel. Faire attention au nombre de clients connectés simultanément à la websocket qui peuvent alourdir le serveur (CPU et mémoire). Après, niveau implémentation, c’est en fonction des frameworks utilisés (autant serveur que client).
Honnêtement, je n’ai jamais eu à utiliser les websockets en production, car mes besoins et ressources ne me le permettaient pas. Toutes mes remarques sont plus théoriques que pratiques lors de mes recherches, mais pourront peut-être t’aiguiller.