IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Connexion inverse HTTP


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut Connexion inverse HTTP
    Bonjour,

    Je développe actuellement une application client Airplay en suivant les protocoles sur cette page nto.github.io/AirPlay.html

    J'essaye de créer une "reverse connection" http mais impossible.
    J'envoie la commande qu'il faut, je reçois la bonne réponse, mon server http marche dans mon navigateur, MAIS je ne reçoit rien de la part du server Airplay de la freebox lorsqu'une photo de termine.

    quelqu'un a une idée ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Ben déjà on va pas deviner ton code.

    Mais bon, c'est pas super-super courant comme protocole, je pense que pas grand-monde ne joue avec d'habitude. Es-tu sûr que la Freebox en est seulement capable ?
    J'ai une Freebox, est-ce que tu pourrais décrire grosso-merdo comment on essaie ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Ça fait beaucoup de ligne de code à poster.
    Si tu suis le lien que j'ai mis, tu peux voir que je demande une connection "reverse http". Le client se comporte comme un server et vice et versa. Cela permet la freebox d'envoyer des évènements au pc.

  4. #4
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 093
    Par défaut
    Il s'agit là clairement d'une technologie propriétaire de Apple, qui ne fonctionne certainement que sur Mac comme tout ce qu'il font, qui nécessite le protocole "Bonjour". Je crois que ce dernier peut être installé sur PC, mais je doute que la Freebox ne sache ce que c'est......

    Mais j'y penses, Freeplayer ne fait-il pas ce que vous voulez faire ???
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je reconnais que ça fait pas mal de code et que peut-être que ça pourrait se fendre d'un petit zip en attachement pour un cas pareil.
    Mais bon, après, 'faut savoir ce que tu veux, soit tu as besoin d'aide soit non.
    À part ça, vu qu'on va pas deviner ton algorithme, tu pourrais nous le décrire, qu'est-ce que tu fais dans quel ordre en réponse à quoi, sans syntaxe Java. C'est en plus, hein, pas l'un ou l'autre. C'est histoire qu'on sache ce que tu fais.

    Si tu veux pas me décrire comment je peux essayer rapidement de mon côté, fais-toi plaisir à attendre que quelqu'un d'autre vienne apprendre un protocole peu utile juste pour t'aider à l'implémenter -_-°.

    Le lien que tu as donné ne parle absolument pas de la notion de "photo qui se termine" et ce n'est pas franchement naturel comme concept. J'ignore donc totalement quel est l'event que tu voudrais recevoir et dans quel contexte tu espérais que ça arriverait.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 281
    Par défaut
    Voici un des endroits qui parle des events : http://nto.github.io/AirPlay.html#photos-events

    Le protocole bonjour n'est pas en cause. Il sert uniquement à repérer les appareils offrant tel ou tel service sur un réseau local. JmDNS implémente déjà cela, je repère la freebox qui offre le service airplay sur mon réseau local.

    Ensuite, toujours avec JmDNS, je demande des infos sur ce service (port, adresse, etc).
    Une fois le port et l'adresse récupéré, je peux faire des requète http spécifique à airplay. En effet, un serveur airplay n'est en fait qu'un serveur http avec quelques règles en plus.

    En suivant les instructions du lien, j'ai réussi sans difficulté à afficher une photo de mon pc sur la freebox (avec les classe URL et HttpURLConnection)
    J'implémente actuellement la possibilité d'un diaporama toujours en suivant cette page et pourquoi pas plus tard les vidéos.

    Mais comme je le dis plus tôt, airplay offre un system d'event en utilisant ce qui s'appelle le "reverse http" (plus d'info ici : http://reversehttp.net/).
    J'envoie donc la requete POST à la freebox, celle-ci me réponse affirmativement et devrait en toute logique m'envoyer à son tour des requetes GET et POST représentant des évèments.

    Malheureusement je ne reçois rien du tout. Voici les lignes de code que j'ai faite pour créer mon serveur http qui devrait traiter les requètes de la freebox. J'ai suivi les conseils de cette page : http://docs.oracle.com/javase/7/docs...e-summary.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HttpServer server = HttpServer.create(new InetSocketAddress(7000),0);
       server.createContext("/event", new HttpHandler(){
           public void handle(HttpExchange t) throws IOException {
               System.out.println(t) //Juste pour voir si je reçoit quelque chose
           }
    });
       server.setExecutor(null); // creates a default executor
       server.start();
    Je précise enfin qu'avec ce code, si je tape "http://localhost:7000/event" dans mon navigateur, j'accède bien au serveur http sur mon pc.

    J'espère que cela vous a éclairé et que vous pourrez m'aider.

    Merci.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par druzy Voir le message
    Malheureusement je ne reçois rien du tout.
    Alors, je m'y connais pas vraiment dans ce protocole, mais a priori la freebox ne va pas t'envoyer des évènements comme "il faut beau aujourd'hui." Tu risques de devoir attendre qu'il se passe quelque chose, avant qu'elle t'envoie quelque chose.

    Ensuite, je connais le principe du reverse HTTP, mais le lien donné n'est pas clair du tout dans le cas d'un slideshow. Il dit que le header de la requête de reverse HTTP doit être différent (donc quoi, c'est une autre requête de reverse ?)
    Et il dit que "3 connexions s'ouvrent en parallèle." Hum, qui fait ça, de quel côté ? A priori seul le client peut ouvrir de nouvelles connexions en parallèle, mais donc quoi, il faut faire quoi au juste ? 3 requêtes de reverse ? Et il faut en faire quoi après ?

    Bref c'est pas clair, et c'est pour ça que tu pourrais quand même te permettre de montrer ce que tu as essayé.

    Citation Envoyé par druzy Voir le message
    Voici les lignes de code que j'ai faite pour créer mon serveur http qui devrait traiter les requètes de la freebox. J'ai suivi les conseils de cette page : http://docs.oracle.com/javase/7/docs...e-summary.html
    Euh, voui, mais je croyais que tu voulais faire du reverse HTTP. Ça c'est du vanilla HTTP, un serveur qui ouvre une socket et qui attend des connexions de client dessus. Je vois mal pourquoi la Freebox irait s'y connecter spontanément.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. connexion persistante http 1.1
    Par supergg02 dans le forum Web & réseau
    Réponses: 0
    Dernier message: 03/12/2007, 00h32
  2. Connexion proxy HTTPS
    Par akrodev dans le forum Général Dotnet
    Réponses: 14
    Dernier message: 28/11/2007, 20h08
  3. [Débutant] Connexion en HTTPS via un Proxy ?
    Par ghohm dans le forum Web
    Réponses: 11
    Dernier message: 15/06/2007, 10h15
  4. Connexion avec HTTP HEADER
    Par breizhgen dans le forum Langage
    Réponses: 9
    Dernier message: 01/09/2006, 22h56
  5. Connexion serveur HTTP
    Par xwindoo dans le forum Développement
    Réponses: 4
    Dernier message: 24/08/2006, 18h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo