



Un messager de chat distribué qui utilise des réseaux Bluetooth Le Mesh.
Le projet se compose des composants suivants:
DistributedChatKit : l'application abstraite, indépendante de la plate-forme, indépendante du transport (utilise l'interface pour la diffusion / réception des messages)DistributedChatBluetooth : une abstraction sur les transports Bluetooth LE spécifiques à la plate-formeDistributedChatApp : l'implémentation iOS / MacOS, utilise Bluetooth LE comme transport, ne nécessite pas de serveurDistributedChatCLI : l'implémentation CLI, utilise HTTP / WebSockets comme transport avec le serveur de simulation ou Bluetooth LE (WIP)DistributedChatSimulationProtocol : le protocole basé sur JSON de haut niveau utilisé entre la CLI et le serveur de simulationDistributedChatSimulationServer : Le serveur compagnon pour la CLI, relaie les messages entre les nœuds CLI connectés, fournit une interface Web pour configurer des liens entre les nœudsScripts : Scripts pour le lancement de CLI Instances de manière pratique et pour tester le transport BLELe graphique de dépendance entre ces packages ressemble à ceci:
%% {init: {"Frowchart": {"DefaulTrenerrer": "Elk"}}} %%
Organigramme BT
subgraph multiplateforme
DistributedChatBluetooth -> DistributedChatkit
DistributedChatcli -> DistributedChatkit
DistributedChatcli -> DistributedChatBluetooth
DistributedChatcli -> DistributedChatsimulationProtocol
DistributedChatSimulatingServer -> DistributedChatsimulationProtocol
fin
subgraph "plates-formes Apple"
DistributedChatApp -> DistributedChatkit
DistributedChatApp -> DistributedChatBluetooth
fin
Tout d'abord, assurez-vous que Swift 5.10+ ou plus récent. Des versions récentes pour Ubuntu et MacOS sont disponibles ici.
Pour exécuter le serveur de simulation, naviguez dans le répertoire DistributedChatSimulationServer et exécutez:
swift run L'interface Web doit désormais être accessible sur http://localhost:8080 .
Pour démarrer une seule instance de la CLI, assurez-vous que le serveur de simulation est en cours d'exécution, accédez à DistributedChatCLI et exécutez:
swift run distributed-chat --name AliceVous pouvez remplacer n'importe quel nom à Alice. Une fois que la CLI a commencé, le nom choisi devrait apparaître comme un nœud dans l'interface Web du serveur de simulation.
Pour plus de commodité, il existe un script bash pour démarrer plusieurs instances de la CLI ensemble en une seule session tmux . Pour l'utiliser, naviguez dans le répertoire racine de ce référentiel et exécutez
Scripts/start_clis Alice Bob Charles Dave ... ou aussi de nombreux clients que vous souhaitez commencer. Pour arrêter tous les clients à la fois, appuyez sur Ctrl + B puis tapez :kill-session et appuyez sur Entrée.
La construction et l'exécution de l'application iOS sont uniquement possibles sur MacOS, alors assurez-vous d'avoir les suivants disponibles:
L'Open du sous-répertoire DistributedChatApp dans Xcode et construisez / exécutez le projet.