سؤال

أحتاج إلى تضمين خادم ويب صغير في مكتبة JSFL الخارجية المترجمة لـ Adobe Flash CS4 بحيث يمكن لعملية خارجية التواصل معها. ستكون المكتبة الخارجية عبارة عن حزمة كربونية على Mac ومجموعة من DLLs على Windows ، لذلك يجب تضمين/خادم الويب/تحميله من رمز C/C ++ مع عدم وجود تبعيات خارجية مثل Ruby. لم يتم تشغيل معظم خادمات الويب الصغيرة مثل FNORD أو MINI-HTTPD إلى MAC أو Windows ولكن في الغالب يتم تجميعها على Linux. كنت أفكر في استخدام خادم ويب مضمن قائم على لوا ، لكنني لست متأكدًا مما إذا كان ذلك سينجح أم لا. هل هناك أي من خادمات الويب المدمجة أسهل من الآخرين في المنافذ إلى Windows و Mac؟

هل كانت مفيدة؟

المحلول

حسنًا ، أجبت أخيرًا على هذا. بعد تقييم العديد من خادمات الويب ، وجدت جوهرة ، النمس. Mongoose هو خادم ويب صغير جدًا تم تدميره مكتوبًا في C يقوم بتجميع ويعمل بسهولة على Linux و Mac و Windows (يوجد حتى رابط في الويكي لتشغيله على iPhone). يقول العديد من محركات الويب إنهم يفعلون ذلك ولكن من السهل حقًا الوصول إلى Mongoose. لقد فعلت بالضبط ما كنت أتوقع أن يفعله خادم ويب صغير بأقل ضجة. لقد وجدت مقاربي السابقة ، لاستخدام Libevent أو Libev ، صعبًا جدًا ، في الغالب بسبب مشكلات الخيوط التي واجهتها مع خيط واجهة المستخدم الرسومية الرئيسية. جاء Mongoose مع دعم CGI و PHP ، لكنني وجدت بالفعل أن المعالجات المستندة إلى C من السهل جدًا الكتابة ، لذا فقد تمسكت بذلك.

نصائح أخرى

Webrick و Mongrel يركض على كليهما.

فكرت في فكرة أخرى أسهل من لوا التي سأحاولها: استخدام خادم ويب تم تصميمه باستخدام libevent. كل ما أحتاجه حقًا هو تقديم ملف واحد ولا أحتاج إلى أي ميزات HTTP أخرى ، لذا قد يعمل شيء مثل ما يلي:

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

سأقدم تقريرا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top