Bonjour à tous,
Je suis actuellement en 2ème année de DUT informatique. Je dois réaliser un projet tuteuré, avec 3 autres étudiants, sur une application de vidéo surveillance.
Voici le sujet :
Nous devons développer une application serveur qui permet de visualiser à distance, avec un client simple, l'image produite par une webcam disposée sur le réseau local du serveur.
Pour visualisé l'image produite par une webcam, l'utilisateur pourra se connecter à partir d'une page web (il pourra accéder à cette page en local ou par internet).
Nous utilisons le langage de programmation C# avec le Framework .Net et le plug-in Silverlight. Pour développer cette application nous utilisons la plate forme Microsoft Visual Web Developer 2010 Express.
J'ai réalisé un projet Silverlight Navigation Application. Ce qui me donne une partie client et une partie serveur (.web).
Nous allons avoir 2 types de client. Un qui visualise l'image de la webcam et un autre qui diffusera l'image de la webcam. Lorsque l'utilisateur lancera l'application via son navigateur web, il aura le choix entre l'un de ces 2 clients.
Ce que je veux faire c'est que le serveur soit actif. C'est à dire qu'il puisse communiquer avec les clients via TCP (TcpClient, TcpListener). Le problème c'est que je ne sais pas où mettre le code pour le rendre actif. Y a-t-il un genre de main qui s'exécute dès que l'on lance l'application sur le serveur?
Ou faut-il que je fasse un projet C# simple + un projet Silverlight et que ces deux projets communiquent ensemble via TCP (avec TcpClient et TcpListener)? Le projet C#, lorsqu'il sera exécuté, sera à l'écoute jusqu'à ce qu'un client Silverlight vienne communiquer avec lui.
Il est à noter qu'à chaque fois, nous avons qu'un seul client pour la visualisation d'une webcam. Il y aura qu'un seul utilisateur, plusieurs personnes ne pourront pas se connecter à l'application en même temps.
Par contre il y aura plusieurs clients pour la diffusion de l'image d'une webcam. Pour une question de simplicité, ce genre de client diffusera des images du flux vidéo (une ou deux par seconde par exemple) et non le flux lui même.
Je sais qu'il existe des services web qui permettrait d'exposer aux clients des services web, mais le problème c'est que je n'ai pas beaucoup de connaissances dans la programmation web et que cela me prendrait du temps à apprendre et à maîtriser. Si j'ai fini mon projet avant la date finale, je pense que je me pencherai sur cette solution. Mais je préfère éviter si c'est possible.
Merci d'avance pour vos réponses et si vous avez de meilleures solutions à me proposer n'hésitez pas.
Partager