



Messenger obrolan terdistribusi yang menggunakan Bluetooth Le Mesh Networks.
Proyek ini terdiri dari komponen berikut:
DistributedChatKit : Aplikasi abstrak, platform-independen, transport-independen (menggunakan antarmuka untuk penyiaran/penerima pesan)DistributedChatBluetooth : Sebuah abstraksi atas transportasi Bluetooth khusus platformDistributedChatApp : Implementasi iOS/MacOS, menggunakan Bluetooth Le sebagai transportasi, tidak memerlukan serverDistributedChatCLI : Implementasi CLI, menggunakan HTTP/Websockets sebagai transportasi dengan server simulasi atau Bluetooth LE (WIP)DistributedChatSimulationProtocol : Protokol berbasis JSON tingkat tinggi yang digunakan antara CLI dan server simulasiDistributedChatSimulationServer : Server pendamping untuk CLI, menyampaikan pesan antara node CLI yang terhubung, menyediakan antarmuka web untuk mengkonfigurasi tautan antara nodeScripts : Script untuk meluncurkan instance CLI dengan nyaman dan untuk menguji transportasi bleGrafik ketergantungan antara paket -paket ini terlihat seperti ini:
%% {init: {"flowchart": {"defaultrenderer": "rusa"}}} %%
BOWCHART BT
Subgraph lintas platform
DistributedChatBluetooth -> DistributedChatkit
DistributedChatcli -> DistributedChatkit
DistributedChatcli -> DistributedChatBluetooth
DistributedChatcli -> DistributedChatsimulationProtocol
DistributedChatsimulationerver -> DistributedChatsimulationProtocol
akhir
Subgraph "Platform Apple"
DistributedChatapp -> DistributedChatKit
DistributedChatApp -> DistributedChatBluetooth
akhir
Pertama, pastikan untuk menginstal Swift 5.10+ atau yang lebih baru. Versi terbaru untuk Ubuntu dan MacOS dapat ditemukan di sini.
Untuk menjalankan server simulasi, navigasikan ke direktori DistributedChatSimulationServer dan jalankan:
swift run Antarmuka web sekarang harus dapat diakses di http://localhost:8080 .
Untuk memulai satu instance dari CLI, pastikan bahwa server simulasi sedang berjalan, bernavigasi ke DistributedChatCLI dan mengeksekusi:
swift run distributed-chat --name AliceAnda dapat mengganti nama apa pun dengan Alice. Setelah CLI dimulai, nama yang dipilih harus muncul sebagai node di antarmuka web server simulasi.
Untuk kenyamanan, ada skrip bash untuk memulai beberapa contoh CLI bersama dalam satu sesi tmux . Untuk menggunakannya, navigasikan ke direktori root dari repositori ini dan jalankan
Scripts/start_clis Alice Bob Charles Dave ... atau berapa pun klien yang ingin Anda mulai. Untuk menghentikan semua klien sekaligus, tekan Ctrl + B lalu ketik :kill-session dan tekan Enter.
Membangun dan menjalankan aplikasi iOS hanya mungkin pada macOS, jadi pastikan untuk memiliki yang berikut ini tersedia:
Subdirektori Buka DistributedChatApp di Xcode dan membangun/menjalankan proyek.