2010-05-19 3 views
5

J'ai une situation inhabituelle - J'ai un dispositif de streaming vidéo intégré avec une interface utilisateur compliquée, et j'ai besoin d'utiliser un serveur web intégré pour reproduire cette interface via un navigateur Web. Je pense à utiliser JavaScript/JQuery sur un backend C++ (je ne suis pas en train de coder tout cela moi-même, j'ai besoin d'embaucher des gens pour le travail de grognement). Le serveur Web intégré est beaucoup moins puissant qu'un PC, je veux donc écrire une application qui exécute toute l'interface utilisateur dans le navigateur, et communique uniquement avec le serveur pour transmettre les nouveaux paramètres du programme, obtenir des mises à jour de statut à partir de l'appareil, et contrôler la lecture vidéo. En d'autres termes, le client obtient une grande page ou un petit nombre de grandes pages (en téléchargeant l'application), l'application conserve un stockage significatif en mémoire locale, et une fois les pages chargées, le serveur n'envoie jamais de configuration. en relation. L'application a deux rangées d'onglets pour naviguer ~ 40 pages de menu, glisser-et-sélectionner les contrôles pour choisir des cellules dans une grille, des listes triées, beaucoup d'options de saisie de données standard, et il devrait être en mesure de contrôler jusqu'à 16 lecteurs vidéo intégrés à la fois (de préférence VLC).Est-ce que JQuery/JavaScript peut être utilisé pour écrire une application client importante?

Est-ce possible en JavaScript/JQuery avec une base C++?

+0

FWIW, des applications complexes dans un navigateur sont très possibles ces jours-ci. Juste témoin Gmail, Yahoo Mail, etc, qui sont tous des morceaux importants de logiciels qui s'exécutent entièrement dans le navigateur. –

+0

Oui, vous pouvez utiliser v8 via C++ (aussi, duktape est un moteur javascript ciblant les systèmes embarqués écrits en C) ... en fait, la distribution linux Slitaz (et quelques autres) utilisent des scripts shell simples avec les utilitaires busybox (tazpanel). Je ne sais pas quel type de matériel vous avez, mais si vous avez une vidéo accélérée par le matériel, il suffit souvent d'utiliser une version minimale de curl pour streamer directement/dev/videoXX sur une connexion udp/tcp ... le reste devrait juste être un cauchemar de css avec un peu de HTML et de côté client facile à mettre en vidéo dans un lecteur html5. – technosaurus

Répondre

3

Ext JS pourrait vous faire économiser beaucoup sur le côté de l'interface utilisateur, il peut être utilisé pour créer des présentations très compliquées avec des commandes riches en très peu de temps. Il a même son propre éditeur graphique où vous pouvez créer l'interface utilisateur avant d'ajouter des gestionnaires.

Son API Documentation est également très bon, bien mieux que la plupart des autres bibliothèques.

Et pour le reste, eh bien, je suis sûr qu'il ya des serveurs Web prêts à l'emploi que vous pouvez regarder dans; jetez un oeil here - la plupart d'entre eux peuvent probablement exposer une application CGI.

+0

Merci pour le lien, Ext JS semble être très pratique en raison du nombre d'éléments d'interface utilisateur prédéfinis. – Ian

+0

Mais pour battre le reste, il a ses défauts, mais aucun plus gros que les autres bibliothèques ... –

1

C'est certainement possible. Regardez dans le framework AJAX de Jquery pour communiquer avec le serveur, puis regardez some C++ web toolkits pour créer des contrôleurs de services Web légers.

1

Tout est possible.

Est-il utile? Cela dépend de vos besoins. Gardez à l'esprit:

  • Vous devez avoir une sorte de support du serveur d'applications. Coder à la main prendra des ressources.
  • Vous devrez également mettre à jour l'exécutable C++ sur le périphérique intégré. Vous pouvez potentiellement supporter plusieurs appareils. Cela peut donc poser problème si un nombre de périphériques pris en charge augmente.
  • Les ressources d'ingénierie C++ sont généralement plus chères (et avec les ingénieurs C++ bon marché, vous paierez 2x dans les corrections de bogues) vs les développeurs php/ruby ​​/ perl sur le serveur.
+0

Rappelez-vous ceci est un serveur web intégré, comme je l'ai dit, il est beaucoup moins puissant qu'un PC. PHP ne correspond quasiment pas à la mémoire et les performances de Perl ne sont pas tolérables. C'est l'une des raisons pour lesquelles je veux avoir des "trucs web" compliqués sur le client, donc le serveur doit juste faire du streaming vidéo, interface avec le firmware de l'appareil, etc Je pense étendre l'application Qt locale de l'appareil pour avoir plus API conviviales pour le serveur, puis une couche C++ mince s'exécutant sous le serveur Web Lighttpd. – Ian

+0

Ma 3ème balle devait être "php/ruby ​​/ pearl côté serveur, non intégrée". Mis à part cela, la mise en œuvre du serveur http est très simple (lire le transport), mais fournir un support applicatif est plus complexe. Globalement, cela se résume à une conversation client mince/épais. – Zepplock

0

Vous voudrez peut-être jeter un oeil à l'utilisation de Dojo par opposition à jquery. C'est vraiment plus orienté vers ce genre de chose. En aucun cas cela ne signifie que vous ne pouvez pas le faire dans jquery, Dojo est juste mieux concevoir IMO pour créer une application JS entière. Bien sûr, il convient de noter que cela rend également son utilisation beaucoup plus complexe que celle de jQuery.

-1

Vous pourriez plutôt envisager une technologie client riche comme Silverlight. L'interface utilisateur compliquée est ce pour quoi elle est conçue et l'expérience de développement est beaucoup plus agréable que la plupart des autres options.

Silverlight doesn't require .NET sur le serveur et peut facilement communiquer sur de simples services REST ou SOAP (voir gSOAP).

+0

Cependant Silverlight nécessite un plugin côté client, et surtout sur Linux je ne veux pas que les utilisateurs installent plugins. JavaScript est livré avec tous les navigateurs et "assurez-vous que JavaScript est activé" n'est pas beaucoup à demander aux personnes qui veulent utiliser l'application. – Ian

+0

Cela n'a été indiqué nulle part dans votre question. Je pense que le downvote est un peu dur. – hemp

+0

Je ne l'ai pas déprécié, je ne suis pas inscrit sur ce site. Cependant, je pense que demander au client d'installer un plugin est quelque chose d'inhabituel qui devrait être mentionné. – Ian

Questions connexes