إدارة الأدوار Symfony و NodeJs

3

أنا أعمل حاليًا على مشروع Symfony (الذي سنتصل به example.com ) الذي أحتاج إليه لتغيير إدارة الأدوار. لقد قمت بالفعل بتعديل كود php وفقًا للتسلسل الهرمي الجديد للدور.

ومع ذلك ، لدينا أيضًا خادم NodeJS المسؤول عن خدمة تدفق الفيديو. عندما يتصل العميل بخدمة الويب ، فإنه يصل إلى صفحة ويب ( example.com/webcam التي تم إنشاؤها بفضل symfony / twig) التي تحتوي على JS تفتح اتصالًا بمقبس. يتم توصيل هذا المقبس مباشرة بخادم nodeJS الذي يعمل على منفذ مخصص ( wss://example.com:9900 ).

الصورة أدناه تلخص هذا.

Imagen 21994

كما قلت سابقًا ، أحتاج إلى تضمين إدارة الأدوار. ومع ذلك ، في الوقت الحالي ، يقع كل شيء حول الدور في رمز symfony. لا أرغب حقًا في تصديره إلى خادم nodeJS لأنه سيكون من الصعب الحفاظ عليه لاحقًا (مكانان يتطلبان التعديل) ولأنه على حد علمي لا توجد إدارة أدوار هي نفسها تمامًا في nodeJS.

لذا فكرت في جعل حركة مرور الويب ستمر عن طريق symfony ثم أرسلها مرة أخرى إلى العميل كما في المخطط أدناه Imagen 21995

ومع ذلك:

  • لا أعرف ما إذا كانت هذه هي أفضل طريقة للقيام بذلك ، إذا كنت على دراية بطريقة أخرى أو إذا كنت تعتقد أنه سيكون من الأفضل تكرار منطق إدارة الأدوار على كل من خادم الويب ، فسأكون ممتنًا لنصائحك
  • إذا كانت هذه طريقة رائعة ، فكيف يمكنني إنشاء websocket فعال على symfony لإعادة توجيه حركة المرور؟

2 الاجابة

1
افضل جواب

أعتقد أنه لا يوجد بالفعل حل جاهز لهذه المشكلة. من أجل مشاركة الأدوار بين Symfony وخادم Node.js ، من الضروري تحديدها في مكان واحد (على سبيل المثال في قاعدة البيانات) ومن ثم إدخالها في كلا الخادمين. في Symfony يمكنك الاستمرار في التسلسل الهرمي للأدوار في قاعدة بيانات: انظر المثال هنا

بهذه الطريقة لديك نقطة واحدة حيث يتم تخزين الأدوار مما يعني أن خادم Node.js يمكنه قراءة جميع الأدوار من قاعدة البيانات.

ملاحظة: ذكر أحد الأشخاص في تعليقات المثال أن هذا المثال لن يعمل مع Symfony 2.8 (لم تحدد إصدار Symfony الخاص بك). إذا كنت تستخدم Symfony 2.8 ، فيمكنك استخدام هذه الحزمة غير المُلقاة كمصدر إلهام.

:مؤلف
0

فقط ما يمكنني أن أقترح استخدام JWT auhtentication ومكالمة symfony للمكالمات في كل مرة والتحقق مما إذا كان الرمز المميز صحيحًا ، أو يمكنك تخزين المفتاح السري (ملف pem) في خادم nodejs وفي رمز symfony المميز والتحقق مما إذا كان الرمز المميز صالحًا في خادم nodejs ، و في رمز يمكنك وضع الأدوار.

حل آخر هو استخدام OAuth2 ومصادقته هناك.

:مؤلف

أسئلة ذات صلة

فوق
قائمة طعام