Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Protocole WAMP - par où commencer ?

+4 votes

Je cherche à apprendre le protocole WAMP.

J'avais lu tout ce que Sam avait écrit à l'époque dessus, mais j'ai l'impression qu'en quelques mois, tout a évolué et je me sens un peu perdu.

J'ai besoin d'un point de départ pour m'y remettre.

  • Quelle configuration choisir ? Python34, Python35 (ou Python27, mais j'aimerai l'éviter) ?
  • Quel OS ? Je développe actuellement sous Linux et Windows. Je peux installer une Ubuntu virtuelle sous Windows, mais j'aimerai éviter si possible.
  • Quels modules ? crossbar, twisted, autobahn, d'autres ???

Par exemple, j'ai essayé le tutoriel de crossbar. Je plante directement sur le pip install crossbar (Windows, Python 34 ou Python35). Mais avant de poser ce genre de question, je veux être sur les bons rails.

Enfin, je souhaite utiliser le framework Kivy pour la partie graphique et application mobile de mon projet. Est-ce que les deux peuvent fonctionner ensemble ? Quelqu'un a déjà réussi un projet avec les deux ?

demandé 29-Jun-2016 par Johjo (220 points)

2 Réponses

+2 votes
 
Meilleure réponse

Tu peux dev sur windows. Si tu as une erreur, on peut la débloquer ensemble dans une autre question dédiée.

Oui, ça marche avec kivy, il faut juste s'assurer que ta boucle d'événement soit intégrée avec celle de kivy. Exemple pour twisted : https://kivy.org/docs/guide/other-frameworks.html?highlight=twisted

Si tu as le choix, prends python 3.5, comme ça tu peux utiliser soit twisted, soit asyncio pour le client. 2.7 va te limiter à twisted et pour à peut prêt tout le reste.

Si tu peux, utilise asyncio et async/await dans le code client. Mais il faut trouver la méthode d'intégration de la boucle d'événements d'asyncio avec celle de kivy et pour le moment je n'ai pas trouvé de tuto.

répondu 29-Jun-2016 par Sam (4,978 points)
sélectionné 29-Jun-2016 par Johjo

Je vais utiliser Python35, la configuration de développement n'est pas encore arrêté. Kivy ne fonctionne pas en python35 sous Windows (d'après ce que j'ai lu sur le site) mais le temps que je l'utilise pleinement, ça aura peut être évolué.

Je vais essayer d'utiliser asyncio, d'après tes écrits, twisted, c'est un peu sale niveau code. Et puis, j'ai toujours voulu utiliser et comprendre async/await.

L'important c'est d'utiliser ce qui marche. Porter du code twisted vers asyncio n'est pas très difficile, donc si twisted marche tout de suite, va au plus facile et utilise le. Tu pourras toujours le porter plus tard.

À savoir que Kivy dispose d'un url request en asynchrone.

https://kivy.org/docs/api-kivy.network.urlrequest.html

Tout dépend de l'architecture de ton application. Moi je n'essayerais pas de mixer les 2 mais j'utiliserais une API web interrogée par Kivy. C'est une architecture plus modulaire et plus flexible que de tout mixer. Genre Kivy, au démarrage, lance un daemon web qu'il interroge ensuite. Tu pourras ainsi, un jour, changer de framework graphique sans coder de nouveau le backend de ton application.

Si tu veux mixer les 2, tu vas te battre, la logique asynchrone et la logique Kivy (opengl) ne sont pas les mêmes.

Bon sache aussi que les appli Android développées avec Kivy sont poussives et rament pas mal !

@Sam
OK, je vais suivre ton conseil et utiliser ce qui marche directement.

@DoubleNain
Merci de me faire peur :p
J'avoue ne pas avoir déployé de truc lourd avec Kivy.

Par contre, je ne suis pas sûr de comprendre ton commentaire. Le daemon web, c'est lui qui s'occupe de dialoguer avec le protocole WAMP et l'appli en kivy dialogue avec ce daemon ? Je devrai alors faire du polling, mais ce sera en local, c'est bien ça ?

+2 votes

Une ressource supplémentaire ne fait pas de mal :
Tuto d'intro sur WAMP sur le site Zeste de Savoir

répondu 30-Jun-2016 par buffalo974 (2,632 points)

@buffalo974
Merci, je vais lire tout ça :)

...