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

Services Web Discussion :

WCF - Silverlight : Vidéo surveillance.


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16
    Par défaut WCF - Silverlight : Vidéo surveillance.
    Bonjour à tous,

    Je suis en deuxième année de DUT informatique et je suis actuellement an train de développer, avec 3 autres étudiants, une application de vidéo surveillance avec des webcams branchées sur des machines. Pour se faire, nous utilisons Silverlight et un web service WCF. Le client Silverlight se compose de 2 "sous-clients", un qui diffuse l'image de sa webcam et un autre qui visualise cette image. Des images seront transférées et non pas un flux viéo (pour une question de simplicité dans un premier temps). Il y aura par exemple 3,4 images par seconde.

    On a fini de coder les clients et j'ai quasiment finie de coder le web service, mais je rencontre quelques problèmes.

    Je vais essayer de vous développer au mieux mes problèmes :

    - j'ai 2 classes : Webcam et ListeWebcam. Un objet Webcam est composé d'une ip (string), d'un nom(string), d'un booléen active (pour savoir si le client diffusion est actif) et d'un booléen connexion (pour savoir si le client est "connectée" avec un client visualisation). Cette classe est bien entendu accessible aux clients. La classe ListeWebcam, comme son nom l'indique, est constituée d'une List contenant des objets Webcam. Elle est chargée à partir d'un fichier texte. Elle est accessible qu'à partir du service web.



    - Voici les méthodes exposées par mon service web :

    Côté client visualisation :

    - List<WebCam> retourneListeWebCam(); retourne la liste des webcam.

    - void miseAJourListeWebcam(List<Webcam> l); met à jour cette liste si un client veut modifier le nom d'une Webcam par exemple.

    - void ConnexionClient(Webcam w); Établit une "connexion" avec un client diffuseur.

    - void déconnexionClient(Webcam w); Déconnexion de ce client diffuseur.

    - string downloadImage(); Pour les tests on va remplacer les images (objets bmp) par des string pour que se soit plus simple dans un premier temps.



    Côté client diffusion :

    - bool WebcamExiste(); Savoir si la webcam est enregistrée dans la List de Webcam.

    - void ajoutWebCam(string nom, string ip); Ajoute la Webcam dans cette liste si elle n'existe pas.

    - void attenteClient(string ip); Le client va se mettre en attente jusqu'à ce qu'un client veuille visualiser l'image de sa webcam. La webcam est donc active.

    - void uploadImage(string img); pour les tests, envoie une string au serveur à la place d'une image.

    - void deconnexionClient(string ip); Met la Webcam inactive.


    Chaque client instancie le service web, ils ne pourront pas communiquer entre eux. Comment dois-je faire pour transférer l'image d'un client à un autre par l'intermédiaire du serveur. Sachant que l'image se trouve dans un objet bitmap (je ne sais plus l'intitulé exacte, ce n'est pas moi qui est codé la partie pour récupérer une image du flux vidéo de la webcam). Faut-il obligatoirement que j'enregistre l'image sur le serveur? Si je peux éviter ça serait vraiment pratique.

    Mon deuxième soucis est que je ne sais pas comment faire attendre le client diffusion jusqu'à ce qu'un autre client veuille visualiser l'image de sa webcam. Comment peut-il être informé de ça pour qu'il puisse commencer et arrêter la diffusion? Y a-t-il une solution pour ce genre de problèmes?


    J'espère que vous avez réussi à comprendre mon problème et que vous pourrez me donner des pistes. Et désoler pour ce gros paver, mais j'essaye d'expliquer le plus précisément mon problème.

    Merci d'avance pour vos réponses.

  2. #2
    Membre expérimenté
    Avatar de Proteus91
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 150
    Par défaut
    hello je viens d avoir ton message privée. As tu déjà entendu parlé du callback wcf ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Proteus91 Voir le message
    As tu déjà entendu parlé du callback wcf ?
    Plus précisément du Message Exchange Pattern Duplex.

  4. #4
    Membre extrêmement actif
    Avatar de kedare
    Homme Profil pro
    SRE
    Inscrit en
    Juillet 2005
    Messages
    1 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : SRE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 549
    Par défaut
    Par contre un petit conseil, évite les noms de méthodes en français.. Ca fait vraiment beurk

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16
    Par défaut
    Merci pour vos réponses , c'est exactement ce qu'il me faut. J'ai lu un peu la doc et si je comprends bien, le client peut exécuter les méthodes qu'expose le serveur et le serveur celles qu'expose le client.

    Par contre, c'est encore un peu flou pour le fonctionnement de ce service. Je vous résume ce que j'ai compris :

    L'interface (pour le client) est défini côté serveur et l'implémentation de cette interface est faite côté client. Et il suffit de modifier le ServiceContract dans l'interface exposée par le serveur (rajouter un CallbackContract pour connaître le type de contrat avec l'autre interface).

    Pour les OperationContract des méthodes exposées par le serveur, il faut rajouter (IsOneWay = true) pour savoir si l'on veut un accusé de réception (false) ou non (true).

    Il faut aussi modifier le fichier de configuration du service.

    Et enfin, pour faire fonctionner tout ça côté client, il faut instancier un nouveau service (celui du client), qui va appeler les méthodes exposées par le serveur et le serveur va pourvoir appeler les méthodes du client.

    Par contre, j'ai l'impression que si un client exécute une méthode exposée par le serveur, le serveur ne pourra pas exécuter une méthode exposée par un autre client.


    Dites moi si je me trompe sur certains points.
    Merci d'avance pour vos réponses.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/02/2011, 00h26
  2. [WCF & Silverlight] bindings supportés ?
    Par anthyme dans le forum Silverlight
    Réponses: 22
    Dernier message: 05/09/2008, 18h59
  3. [linq to SQL/WCF/Silverlight] Architecture
    Par anthyme dans le forum Général Dotnet
    Réponses: 11
    Dernier message: 28/02/2008, 11h10
  4. [débutant] vidéo surveillance
    Par c-top dans le forum Vidéo
    Réponses: 10
    Dernier message: 21/08/2007, 17h35
  5. [Débutant] Quel langage pour un logiciel de vidéo surveillance ?
    Par jo13.56 dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 09/02/2007, 17h11

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