Bonjour à tous,
Je suis actuellement en train de réaliser un projet de vidéo surveillance avec un service web duplex WCF et Silverlight côté client.
Le côté client se divise en 2 partie : le client qui diffuse l'image de sa webcam et le client qui visualise cette image. J'ai une classe webcam qui donne des renseignements au client sur son nom, son ip, si elle est active, si elle est en train de diffuser.
Le service communique au client visualiseur la liste des webcam, pour qu'il puisse savoir lesquelles sont actives. Bien entendu il faudra que le client diffuseur se "connecte" au service web (change l'attribut active de la webcam). Si la webcam n'est pas enregistrée sur le serveur, elle est automatiquement ajoutée. J'avais déjà implémenté tout ça dans un service web simple, mais j'ai été bloqué car c'est un service duplex qui était adapté à mon problème.
Mon problème se situe au niveau du transfert de l'image de la webcam du client diffuseur au client visualiseur (il y aura 2 à 3 images transférées par seconde et non flux vidéo). Je vais vous présenter ma solution, qui est certes lourde et non optimisée, mais qui pourrait peut-être marcher :
Le client diffuseur va se connecter au service. L'attribut active de l'objet webcam correspondant passe à vrai et le service va regarder toute les 2-3 secondes, par exemple, que l'attribut "diffusion" soit à vrai pour ensuite appeler une méthode côté client pour récupérer l'image. Pour se faire, le service chargera un fichier présent sur le serveur, contenant la liste des webcam (ce fichier sera donc charger toute les 2-3 secondes pour être au courant du changement. Oui ça à l'air très lourd comme solution).
Dès que le client visualiseur va clicker sur "connexion" et qu'il aura choisi une webcam active dans une combobox, l'attribut "diffusion" de la webcam va donc passer à vrai. Et donc le service va lancer la récupération d'image.
C'est là que j'ai un problème, est-il possible d'avoir une classe déclarée en static qui soit commune aux clients. Je m'explique : quand le service à le feu vert pour récupérer l'image de la webcam, il l'a stockerait dans cette fameuse classe static et le client visualiseur la récupérerait ensuite.
Cette solution à l'air vraiment très lourde, mais est-ce que c'est possible de faire ce genre de classe static qui puisse remplir cette fonction? Et est-ce que ma solution pourrait fonctionner?
Je sais que c'est un peu du bidoullage, mais c'est la seule solution que j'ai trouvée jusqu'à présent. Peut-être que vous avez mieux à me proposer qui ne soit pas trop compliqué.
Merci d'avance pour vos réponses et désoler pour le paver que je viens de vous pondre. Je n'ai pas de code à vous présenter, je préfère être sûr où je mets les pieds et pas tomber dans une impasse comme ça m'est arrivé avec le service web simple.
Partager