



رسول الدردشة الموزع الذي يستخدم شبكات Bluetooth LE Mesh.
يتكون المشروع من المكونات التالية:
DistributedChatKit : التطبيق التجريدي ، مستقلة عن النظام الأساسي ، مستقل للنقل (يستخدم واجهة للبث/استلام الرسائل)DistributedChatBluetooth : تجريد على النقل Bluetooth LE خاص بالمنصةDistributedChatApp : تطبيق iOS/MacOS ، يستخدم Bluetooth le As Transport ، لا يتطلب خادمًاDistributedChatCLI : تطبيق CLI ، يستخدم إما HTTP/WebSockets كنقل مع خادم المحاكاة أو Bluetooth LE (WIP)DistributedChatSimulationProtocol : البروتوكول المستند إلى JSON عالي المستوى يستخدم بين CLI وخادم المحاكاةDistributedChatSimulationServer : الخادم المصاحب لـ CLI ، يرقل الرسائل بين العقد المتصلة CLI ، واجهة ويب لتكوين الروابط بين العقدScripts : البرامج النصية لإطلاق مثيلات CLI بشكل مريح واختبار نقل BLEيبدو أن الرسم البياني للاعتماد بين هذه الحزم:
٪٪ {init: {"sholechart": {"defaultrenderer": "elk"}}} ٪٪
مخطط انسيابي BT
الفرع عبر النظام الأساسي
DistributedChatbluetooth -> DistributedChatkit
DistributedChatcli -> DistributedChatkit
DistributedChatcli -> DistributedChatbluetooth
DistributedChatcli -> DistributedChatsimulationProtocol
DistributedChatsimationServer -> DistributedChatsimulationProtocol
نهاية
الفرع "منصات التفاح"
DistributedChatapp -> DistributedChatkit
DistributedChatapp -> DistributedChatbluetooth
نهاية
أولاً ، تأكد من تثبيت Swift 5.10+ أو مثبت أحدث. يمكن العثور على الإصدارات الحديثة لـ Ubuntu و MacOS هنا.
لتشغيل خادم المحاكاة ، انتقل إلى DistributedChatSimulationServer الدليل وتنفيذ:
swift run يجب الآن الوصول إلى واجهة الويب على http://localhost:8080 .
لبدء مثيل واحد من CLI ، تأكد من تشغيل خادم المحاكاة ، وانتقل إلى DistributedChatCLI وتنفيذ:
swift run distributed-chat --name Aliceيمكنك استبدال أي اسم لأليس. بمجرد بدء CLI ، يجب أن يظهر الاسم المختار كعقدة في واجهة الويب الخاصة بخادم المحاكاة.
للراحة ، يوجد نص Bash لبدء مثيلات متعددة من CLI معًا في جلسة tmux واحدة. لاستخدامه ، انتقل إلى الدليل الجذر لهذا المستودع وتشغيله
Scripts/start_clis Alice Bob Charles Dave ... أو ولكن العديد من العملاء الذين تريد البدء. لإيقاف جميع العملاء في وقت واحد ، اضغط على Ctrl + B ثم اكتب :kill-session واضغط على Enter.
لا يمكن بناء وتشغيل تطبيق iOS فقط على MacOS ، لذا تأكد من توفر ما يلي:
فتح دليل DistributedChatApp الفرعي في Xcode وإنشاء/تشغيل المشروع.