Forum Programmation.python Utiliser XMPP pour un logiciel réseau

Posté par (page perso) . Licence CC by-sa.
0
21
déc.
2017

Les logiciels existants ne me convenant pas, j'ai comme projet de développer un logiciel de partage d'écran. Notamment, ces logiciels donnent trop de pouvoir au maître sur l'ordinateur des élèves: c'est bien pour une salle équipée, mais pas si chacun a son PC personnel.

Actuellement j'utilise VNC pour cela, ça fonctionne bien, mais j'aimerai automatiser un peu les connexions. Les fonctions du logiciel client seraient principalement: partager son écran (avec tous ou un seul utilisateur), demander à voir un écran, gérer les permissions. La configuration devrait être facilitée par avahi.

Pensez-vous que XMPP soit adapté pour faire cela? Est ce que je dois utiliser un serveur dédié, ou bien je peux utiliser le même pour faire de la messagerie? Et y a-t-il des bibliothèques python qui soient assez simples pour faire ça? Je suis un débutant, et c'est aussi pour ça que je ne souhaite pas avoir à coder un protocole réseau…

Bref je sais ce que veux, mais pas encore comment :)

Merci d'avance pour vos conseils.

  • # XMPP, ou pas

    Posté par (page perso) . Évalué à 1.

    J'ai pensé à XMPP, mais l'idéal serait qu'il n'y ait pas de serveur central. Les clients se trouveraient par avahi, et communiqueraient directement. Peut être est-ce faisable avec le serveur http intégré à python? Il y a peut-être une autre solution?

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: XMPP, ou pas

      Posté par . Évalué à 3.

      Si tu es sur un réseau local, tu dois pouvoir trouver les autres avec du broadcast ou du multicast. Ensuite, avec la réponse tu as des IP, tu récupères les pairs des uns pour devenir pair avec les nouveaux.

      Par contre, quid de la sécurité ensuite ?

      • [^] # Re: XMPP, ou pas

        Posté par (page perso) . Évalué à 2.

        Je pensais me baser sur des briques existantes, comme avahi, pour simplifier, mais peut être n'est ce pas plus simple… Pour le broadcast: ça marche avec n'importe quel protocole? J'aimerai juste pouvoir envoyer des commandes texte d'une machine à l'autre, peut être avec telnet?

        Pour la sécurité, je rajouterai une couche de crypto. Avant d'executer une action, on vérifie bien qui l'a demandée (signatures gpg?). Actuellement j'utilise ssvnc pour me connecter aux PC, je reprendrai ce principe en ajoutant une gestion des utilisateurs/certificats.

        Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: XMPP, ou pas

      Posté par (page perso) . Évalué à 3.

      sur un réseau local, du broadcast serait sans doute plus approprié pour une diffusion de vidéo, comme dit par ailleurs.

      Si tu veux que ça fonctionne à distance, alors oui XMPP pourrait être utilisé, notamment via Jingle (cf. https://linuxfr.org/users/goffi/journaux/parlons-xmpp-episode-10-copie-de-fichiers-et-jingle-suite), et son chiffrement.

      As tu regardé du côté de Jitsi ? Il fait déjà la partage d'écran, il peut servir de base. Je ne sais pas s'il peut être facilement extensible, mais ça vaut le coup d'y jeter un œil. Le Jitsi videobridge est une option pour diffuser la vidéo à plusieurs utilisateurs.

      Je pense qu'il y a quand même beaucoup de boulot, même si tu trouves une bonne base. Tout ce qui touche à la vidéo peut prendre facilement du temps, surtout si tu veux bien sécuriser ça. Jette un œil aux bibliothèques disponibles pour voir celles qui gèrent Jingle.

      J'aurais pu te conseiller SàT sur lequel je travaille, mais on ne fait pas encore de vidéo et ça ne sera pas la cas avant la prochaine sortie, donc plusieurs mois. Par contre on gère déjà chiffrement, commandes, et Jingle (mais par pour la vidéo encore).

      Bon courage !

      • [^] # Re: XMPP, ou pas

        Posté par (page perso) . Évalué à 1.

        Je vais essayer de m'en sortir pour envoyer des messages texte par broadcast, vu que l'accès à distance n'est pas une priorité. C'est la partie qui sera la plus compliquée pour moi, histoire de sockets, :-(

        Pour la partie "vidéo", je voudrais rester sur du VNC. Pour la prise en main à distance, ça marche très bien avec ssvnc et de manière sécurisée. Pour partager mon écran avec plusieurs personnes j'utilise aussi VNC, mais il serait peut-être intéressant de trouver une solution vidéo. D'après mes tests, le problème dans ce cas est surtout la latence (temps d'encodage, lecteurs qui chargent un tampon…), un décalage qui pourrait s'accumuler, ainsi que la capture du pointeur.

        Un LUG en Lorraine : https://enunclic-cappel.fr

  • # Forums

    Posté par (page perso) . Évalué à 1.

    J'ai commencé à programmer mon logiciel (enfin, j'ai surtout fait beaucoup d'essais, et appris…)
    Avez-vous un forum francophone à me conseiller pour poser mes questions? Je pensais à celui de l'Afpy, mais il n'est vraiment pas actif… Développez.com peut être? À défaut j'essaierai le forum Python anglais.

    Un LUG en Lorraine : https://enunclic-cappel.fr

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.