سؤال

بالنسبة لمشروع حديث ، لديّ نص PHP يعمل كخفي قائم على CLI. سيكون هذا الخفي مسؤولاً عن مراقبة/التحكم في عمليات العمال المستقلة.

بشكل دوري ، سيقوم المستخدمون بإصدار طلبات لإدارة العمال من خلال واجهة أمامية لـ PHP (CLI Daemon والرمز الأمامي على نفس الخادم المادي). سوف تحتاج الواجهة الأمامية إلى إجراء مكالمات الطريقة إلى الخفي.

أنا مرتبك حول كيفية التعامل مع هذه المكالمات "عن بُعد". اعتقدت أن استخدام بروتوكول RPC مثل JSON-RPC على مقبس UNIX أو TCP القياسي سيكون هو السبيل للذهاب ، ولكن يبدو أن كل تطبيق لـ JSON-RPC و XML-RPC و SOAP وما إلى ذلك. http. نظرًا لأنني لا أتواصل عبر الويب ، فإن HTTP غير ضروري تمامًا.

لذلك ، سؤالان:

  • لماذا تقترن معظم حزم PHP RPC بـ HTTP؟
  • ما هي أفضل طريقة للتعامل مع مكالمات الطريقة كما هو موضح أعلاه؟
هل كانت مفيدة؟

المحلول

لماذا تقترن معظم حزم PHP RPC بـ HTTP؟

هذا سهل. تم تصميم PHP للشبكة. من النادر كتابة تطبيقات CLI في PHP.

لماذا تقترن معظم حزم PHP RPC بـ HTTP؟

من الشائع أن يكون PHP أداء RPC على البرامج التي تعمل بلغة أخرى ، مثل Java ، وهناك خيارات جيدة هناك.

بالنسبة لبرنامج CLI PHP ، لست على دراية بأي حل خارج الصندوق. ولكن يجب أن يكون من الممكن تنفيذ حل مخصص مع مآخذ UNIX. انظر ملحق مآخذ. لاحظ أن عدم وجود دعم متعدد الخيوط في PHP قد يجعل هذا الأمر أكثر صعوبة قليلاً (للتعامل مع اتصالات متعددة يجب عليك أن تتطرق إليها أو تنفيذ جدولة الخيوط الواحدة الخاصة بك ...)

نصائح أخرى

لا يزال بإمكانك استخدام HTTP والاتصال بـ LocalHost ، وهذا لن يولد أي حركة مرور على الشبكة. لا أعتقد أن هناك أي ميزة حقيقية يمكن اكتسابها باستخدام المقابس مباشرة ، ولكن إذا كنت تريد حقًا طبقة نقل مختلفة ، فيمكنك استخدام RipCord (http://ripcord.googlecode.com/) والتي تتيح لك تحديدك فئة طبقة النقل الخاصة. للكشف الكامل ، أنا مؤلف كتاب Ripcord ، لذلك قد أكون متحيزًا.

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