JeuWeb - Crée ton jeu par navigateur
Un serveur WebSocket en Python - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Un serveur WebSocket en Python (/showthread.php?tid=5013)

Pages : 1 2


Un serveur WebSocket en Python - Warshadow - 24-07-2010

Hello !

Puisque ce forum est fait pour partager des ressources, voici ma dernière en date : une base pour un serveur WebSocket en Python.

J'ai développé ça dans le cadre du projet Fightly (plus d'infos sur ce même site), et comme j'aime le libre, je partage sous licence MIT.

Si ça vous intéresse :
Je répond à vos questions si vous en avez ! Smile


RE: Un serveur WebSocket en Python - Warshadow - 24-07-2010

#fail : j'ai mis ça en graphisme... Quelqu'un le met en développement svp ? Big Grin


RE: Un serveur WebSocket en Python - srm - 24-07-2010

Tu abuses de twitter toi Wink
Et sinon concernant les sockets/thread etc, regarde du côté de Scala j'ai mis un topic à ce sujet dans blabla sur les actors.

Ca peut t'intéresser.


RE: Un serveur WebSocket en Python - Warshadow - 25-07-2010

Yes j'ai vu le topic mais là tout de suite, je n'ai point le temps d'apprendre une nouvelle techno ! Et puis je fais aussi ça justement pour apprendre le Python... Wink


RE: Un serveur WebSocket en Python - niahoo - 26-07-2010

Donc moi j'ai testé ton code,
ça ne fonctionne pas.

- Je lance le serveur
- Je recharge ma page sur chromium et là, la console python indique bel et bien une connexion et aussitot une déconnexion.
- du coup mon 'send' sur chromium ne va nulle part !

Voilà si tu as une idée du problème ?
Je regarderai la version de chromium ce soir.
(python 2.6)
_____________________________________________________________

Autre chose, est-ce que les sockets sont quelque chose de rapide ou de plutôt lent ?
Le projet que je commence à peine sera servi par un serveur en python, les joueurs lançant eux des appels à une page php ou python-en-CGI.

DOnc pour que mon script php / cgi python communique ( avec envoi de message et récupération de réponse ) avec le serveur du jeu, est-ce que les sockets sont une bonne solution ?

Je ferai éventuellement un topic là dessus si la réponse donne lieu à une controverse.


RE: Un serveur WebSocket en Python - Sephi-Chan - 26-07-2010

Il ne faut pas confondre les sockets et les websockets. Websockets est un protocole qui permet à un navigateur d'envoyer des sockets (selon ce protocole Websocket, qu'on abrège WS) et donc de permettre des communications en temps réel avec un serveur qui supporte ce protocole (et qui aura pour mission de communiquer avec le serveur de jeu classique, écrit en PHP par exemple). Le problème, c'est que très peu de navigateurs savent envoyer ça.


Sephi-Chan


RE: Un serveur WebSocket en Python - niahoo - 26-07-2010

plus simplement, un websocket est un socket dont l'un des deux interlocuteurs est un navigateur web. Mais moi je me posais la question des performances entre l'affichage des vues php et le serveur du jeu !


RE: Un serveur WebSocket en Python - Sephi-Chan - 26-07-2010

Le socket n'intervient pas sur cette couche. Les requêtes adressées via le websocket sont lancées en asynchrone, comme les requêtes XMLHTTPRequest. Ça dépend donc de la vitesse du client. Ensuite, les communications entre le serveur WS et ton serveur de jeu (en PHP) seront presque instantannées puisqu'ils tourneront probablement sur la même machine, ou au moins sur des machines disposant d'excellents débits en envoi. Donc oui c'est très performant.


Sephi-Chan


RE: Un serveur WebSocket en Python - Warshadow - 27-07-2010

(26-07-2010, 04:13 PM)niahoo a écrit : Donc moi j'ai testé ton code,
ça ne fonctionne pas.

- Je lance le serveur
- Je recharge ma page sur chromium et là, la console python indique bel et bien une connexion et aussitot une déconnexion.
- du coup mon 'send' sur chromium ne va nulle part !

Est-ce que tu accèdes à ta page html via localhost ?

Et l'avantage des WebSockets, par rapport aux requêtes XmlHttpRequest notamment, c'est que la connexion est persistante : pas besoin de la recréer à chaque fois que tu as un truc à envoyer, trames qui transitent moins lourdes donc plus rapides, et surtout, surtout, le serveur peut envoyer directement des données au client, sans que ce dernier ne l'ai explicitement demandé.


RE: Un serveur WebSocket en Python - niahoo - 27-07-2010

ah non comme c'est du javascript je l'avais pas foutue sur le serveur la page, il faut ?

Ah oui ça doit être comme pour ajax, pas de cross domain ?