Plus, asynchronous I/O, network & event-driven programming in pure PHP inspired by NodeJS
كيف ذلك؟
ال loop التي تعمل على السيرفير الدوال التي بداخلها تعمل بنمط non-block ؟
ممكن شرح بسيط عن آلية عملها
قرأت جزء من السورس كود و رأيتك تعتمد على socket و لم أتعامل معها مسبقا و حسب ما فهمت ان ال socket مفتوح على port معين و يستقبل الطلبات و بهذا تبقى ضمن singleThread
اليس socket.me يعتمد مثل هذه الطريقة؟
و عمل رائع موفق
nodejs, socket-io, socket-me وغيره SingleThread
Plus ايضا مثلهم .. لكن بما ان Plus مبنى ب php .. وبما إن PHP ليها extensions لل threads مثل PThread اذا فلا مشكله فى ان تستخدم Plus لعمل Multi-Thread Apps :)
طبعا الامر بهذه السهوله :)
Plus يستخدم مكتبه تخص نظام التشغيل تسمى بــ libevent يمكنك البحث عنها لمعرفة المزيد .. وإن لم تكن موجوده !!! لا تقلق سيتخدم select() ايضا خاصه بنظام التغشيل لكن موجوده فى اى بيئه جاهزه ...
الفكره لا تستخدم sockets كما قلت انت .. ولكن الفكره كلها موجوده فى كلاس IOLoop واما IOStream & IOServer & IOClient فقط مجرد تطبيقات عليها ^_^
لا يوجد اصلا دوال يستخدمها السرفر غير دوال ال socket واذا لاحظت انه فى الاصل يحول السرفر الاتصال الجديد الى non-block بدون اى مجهود
الفكره ليست معقده بل بسيطه :)
التعليقات