في الفترة الماضية كنت أعمل على تطبيق يجمع ما تعلمته طيلة الشهور الفائتة (React + Redux + Webpack، ثلاث مكونات أخذت تتصاعد شعبيّتها مؤخّرًا)، فقمت بكتابة خادوم وعميل دردشة بشكل مشابه لـWhatsApp Web وبواجهة مصممة وفق Material Design، يعمل ضمن المتصفحات على الشبكة المحلية، حيث يمكن لأي جهاز على الشبكة إنشاء الخادوم ثم يمكن للأجهزة الأخرى الانضمام إليه وبدء الدردشة سويّة عبر WebSockets. يتم اكتشاف الخواديم تلقائيًّا باستخدام بروتوكول Zeroconf/Bonjour، وتستخدم Socket.IO لنقل رسائل الدردشة.
بالإضافة إلى ما سبق، استخدمت:
Babel طبعًا
Reselect لـRedux
Promsie middleware لـRedux
CSS Modules
ESLint
VSCode
فيديو يستعرض المشروع:
الخطوات القادمة:
تشفير الرسائل باستخدام asymmetric key encryption باستخدام واجهة التشفير WebCrypto API في المتصفحات الحديثة، يتم تطبيق التشفير بشكل شفاف (transparent) عن طريق middleware لـRedux يشفر الرسائل الصادرة ويفك تشفير الرسائل الواردة ويمررها لـلـstore.
تحسين المظهر (المشروع ليس إلا proof of concept)
المصدر متوفر على GitHub:
التعليقات