



Ein verteilter Chat -Messenger, der Bluetooth Le Mesh -Netzwerke verwendet.
Das Projekt besteht aus den folgenden Komponenten:
DistributedChatKit : Die abstrakte Anwendung, plattformunabhängig, transportunabhängig (verwendet die Schnittstelle zum Rundfunk-/Empfangsnachrichten)DistributedChatBluetooth : Eine Abstraktion über plattformspezifische Bluetooth-LE-TransporteDistributedChatApp : Die iOS/macOS -Implementierung verwendet Bluetooth LE als Transport, benötigt keinen ServerDistributedChatCLI : Die CLI -Implementierung verwendet entweder HTTP/WebSockets als Transport mit dem Simulationsserver oder Bluetooth LE (WIP)DistributedChatSimulationProtocol : Das zwischen CLI und Simulationsserver verwendete hochrangige JSON-basierte ProtokollDistributedChatSimulationServer : Der Begleitserver für die CLI, die Nachrichten zwischen verbundenen CLI-Knoten weiterleitet, bietet Web-Interface zum Konfigurieren von Links zwischen KnotenScripts : Skripte zum Starten von CLI -Instanzen bequem und zum Testen des BLE -TransportsDie Abhängigkeitsgrafik zwischen diesen Paketen sieht folgt aus:
%% {init: {"flowdial": {"defaUltrenderer": "elk"}}} %%
Flussdiagramm Bt
Subgraph-plattformübergreifend
DistributedChatbluetooth -> DistributedChatkit
DistributedChatcli -> DistributedChatkit
DistributedChatcli -> DistributedChatbluetooth
DistributedChatcli -> DistributedChatsimulationProtocol
DistributedChatsimulationsserver -> DistributedChatsimulationProtocol
Ende
Subgraph "Apple -Plattformen"
DistributedChatapp -> DistributedChatkit
DistributedChatapp -> DistributedChatbluetooth
Ende
Stellen Sie zunächst sicher, dass Swift 5.10+ oder neuer installiert ist. Neue Versionen für Ubuntu und MacOS finden Sie hier.
Um den Simulationsserver auszuführen, navigieren Sie in das Verzeichnis DistributedChatSimulationServer und führen Sie aus:
swift run Die Weboberfläche sollte nun unter http://localhost:8080 zugegriffen werden.
Um eine einzelne Instanz der CLI zu starten, stellen Sie sicher, dass der Simulationsserver ausgeführt wird, navigieren Sie in DistributedChatCLI und führen Sie aus:
swift run distributed-chat --name AliceSie können jeden Namen für Alice ersetzen. Sobald die CLI begonnen hat, sollte der ausgewählte Name in der Webschnittstelle des Simulationsservers als Knoten angezeigt werden.
Aus Gründen der Bequemlichkeit gibt es ein Bash -Skript, um mehrere Instanzen der CLI in einer einzigen tmux -Sitzung zusammen zu starten. Um es zu verwenden, navigieren Sie in das Stammverzeichnis dieses Repositorys und führen Sie aus
Scripts/start_clis Alice Bob Charles Dave ... oder wie viele Kunden Sie beginnen möchten. Um alle Clients gleichzeitig zu stoppen, drücken Sie Ctrl + B geben Sie dann :kill-session ein und drücken Sie die Eingabetaste.
Das Erstellen und Ausführen der iOS -App ist nur auf macOS möglich. Stellen Sie daher die folgenden verfügbaren:
Das Öffnen des DistributedChatApp -Unterverzeichnisses in Xcode und erstellt/läuft das Projekt aus.