2009-12-22 13 views
3

J'ai besoin d'intégrer un minuscule serveur web dans une bibliothèque externe jsfl compilée pour Adobe Flash CS4 afin qu'un processus externe puisse communiquer avec lui. La bibliothèque externe sera un paquet Carbon sur Mac et un ensemble de dll sur Windows, de sorte que le serveur web devra être embarqué/chargé à partir du code C/C++ sans aucune dépendance externe comme Ruby. La plupart des petits serveurs Web comme fnord ou mini-httpd n'ont jamais été portés sur Mac ou Windows mais sont principalement destinés à être compilés sous Linux. Je pensais utiliser un serveur Web embarqué Lua mais je ne sais pas si cela fonctionnerait ou non. Y a-t-il des serveurs Web intégrés qui sont plus faciles que d'autres à porter sur Windows et Mac?Intégrer un serveur web en bundle carbone

Répondre

4

Très bien, j'ai finalement répondu à cette question. Après avoir évalué plusieurs serveurs Web, j'ai trouvé une gemme, Mongoose. Mongoose est un très petit serveur web embarquable écrit en C qui se compile et s'exécute facilement sous Linux, Mac et Windows (il y a même un lien dans le wiki pour le faire fonctionner sur l'iPhone). Beaucoup de serveurs web disent qu'ils le font mais Mongoose était vraiment facile à mettre en place. Il a fait exactement ce que je m'attendais à un petit serveur web à faire avec un minimum d'agitation. Mon approche précédente, pour utiliser libevent ou libev, je l'ai trouvé un peu trop dur, principalement à cause des problèmes de threading que j'ai rencontrés avec mon thread graphique principal. Mongoose est venu avec un support pour CGI et PHP, mais j'ai vraiment trouvé les gestionnaires basés sur C très facile à écrire, donc je suis resté avec ça.

+1

Après quelques mois d'utilisation de Mongoose, je l'aime toujours, super serveur web intégré. –

0

Webrick et Mongrel fonctionnent sur les deux.

+0

J'ai vraiment besoin d'un serveur web sans aucune dépendance externe comme Ruby. C'est pourquoi je pense qu'un serveur Web basé sur Lua pourrait être le meilleur pari. –

+0

Lua serait une dépendance. –

+0

True NSD, mais beaucoup plus petit que Ruby ou Python. –

0

J'ai pensé à une autre idée qui est plus facile que Lua que je vais essayer: en utilisant un serveur web construit avec libevent. Tout ce que je vraiment besoin de faire est de servir jusqu'à un fichier et je ne suis pas besoin d'autres fonctionnalités HTTP donc quelque chose comme ce qui suit pourrait fonctionner:

http://3.rdrail.net/blog/libevent-webserver-in-40-lines-of-c/

je vais faire rapport.