43 votes

Serveur WebSocket en Python ?

Existe-t-il un serveur WebSocket, construit en Python, qui prend en charge le protocole utilisé par Google Chrome (je pense que c'est le plus récent, mais je n'en suis pas sûr) ?

J'en ai besoin pour un petit projet sur lequel je travaille avec des WebSockets, mais je ne trouve pas d'implémentation qui fonctionne.

30voto

Mohsen Points 16856

Vérifiez Tornade . Il est utilisé dans FriendFeed. Il est très puissant et écrit en Python.

Tornado est une version open source de du serveur web évolutif et non bloquant. et des outils qui alimentent FriendFeed. L'application FriendFeed est écrite en utilisant un cadre web qui ressemble un peu ressemble un peu à web.py ou à la webapp de Google, mais avec des outils supplémentaires et des optimisations supplémentaires pour tirer parti de la sous-jacente non bloquante sous-jacente.

21voto

jkp Points 20410

Si vous cherchez quelque chose sans aucune dépendance, cette Gist pourrait vous aider dans votre démarche. Actuellement, il ne prend en charge que la réception de données, mais il pourrait être étendu pour renvoyer des données de manière assez triviale.

C'est une lecture intéressante car elle montre à quel point il est facile de mettre en œuvre la prise en charge des WebSockets.

16voto

oberstet Points 7409

Autobahn implémente WebSocket pour les clients et les serveurs, supporte Python 2 et 3, et fonctionne sur Torsadé y asyncio :

Il prend en charge un large éventail de fonctionnalités, toutes les versions de protocole et offre une conformité de pointe aux protocoles.

et s'accompagne d'un vaste ensemble d'exemples à utiliser avec Twisted et asyncio.

Avertissement : je suis l'auteur original d'Autobahn et je travaille pour Tavendo.

6voto

Jan-Philip Gehrcke Points 6259

Jetez un coup d'œil à ws4py : https://github.com/Lawouach/WebSocket-for-Python Il met en œuvre la norme hybi-10, prise en charge par Firefox 7 et Chrome 14 pour le moment. De plus, il inclut un serveur piloté par gevent, qui utilise l'idée sympathique des greenlets. Je vous recommande de rechercher ces termes sur le web :)

2voto

Mark Lakata Points 3458

J'ai trouvé que cette mise en œuvre était la meilleure pour mes besoins. Elle prend en charge ws: y wss: hors de la boîte et il est petit.

https://github.com/opiate/SimpleWebSocketServer

Le readme dit :

Un serveur WebSocket très simple écrit en Python

Pas d'installation de paquet, juste un fichier, profitez-en

Supports

  • Hixie 76 (Safari et iPhone)
  • RFC 6455 (Tous les navigateurs les plus récents)
  • TLS/SSL

Il y a aussi un post de StackOverflow avec plus de pistes sur un serveur WebSocket pythonique : Comment puis-je implémenter un serveur WebSocket (wss://) sécurisé en Python ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X