



Un mensajero de chat distribuido que utiliza redes Bluetooth Le Mesh.
El proyecto consta de los siguientes componentes:
DistributedChatKit : la aplicación abstracta, independiente de la plataforma, independiente del transporte (utiliza la interfaz para transmisión/mensajes de recepción)DistributedChatBluetooth : una abstracción sobre los transportes de LE Bluetooth específicos de la plataformaDistributedChatApp : la implementación de iOS/MacOS, utiliza Bluetooth LE como transporte, no requiere un servidorDistributedChatCLI : la implementación de CLI utiliza http/websockets como transporte con el servidor de simulación o Bluetooth LE (WIP)DistributedChatSimulationProtocol : el protocolo basado en JSON de alto nivel utilizado entre CLI y el servidor de simulaciónDistributedChatSimulationServer : el servidor complementario para la CLI, los mensajes de transmisión entre nodos CLI conectados proporcionan una interfaz web para configurar enlaces entre nodosScripts : Scripts para lanzar las instancias de CLI convenientemente y para probar el transporte BLEEl gráfico de dependencia entre estos paquetes se ve así:
%% {init: {"FlowChart": {"DeFaultrenderer": "Elk"}}} %%
diagrama de flujo bt
Subgraph Crossplatforma
Distributedchatbluetooth -> distributedchatkit
Distributedchatcli -> distributedchatkit
DistributedChatcli -> DistributedChatbluetooth
Distributedchatcli -> distributedchatsimulationprotocol
DistributedChatsimulationerver -> DistributedChatsimulationProtocol
fin
Subgraph "Plataformas de Apple"
Distributedchatapp -> distributedchatkit
Distributedchatapp -> distributedchatbluetooth
fin
Primero, asegúrese de tener Swift 5.10+ o más nuevo instalado. Las versiones recientes para Ubuntu y MacOS se pueden encontrar aquí.
Para ejecutar el servidor de simulación, navegue por el directorio DistributedChatSimulationServer y ejecute:
swift run La interfaz web ahora debe estar accesible en http://localhost:8080 .
Para iniciar una sola instancia de la CLI, asegúrese de que el servidor de simulación se esté ejecutando, navegue a DistributedChatCLI y ejecute:
swift run distributed-chat --name AlicePuede sustituir cualquier nombre por Alice. Una vez que la CLI ha comenzado, el nombre elegido debe aparecer como un nodo en la interfaz web del servidor de simulación.
Por conveniencia, hay un script bash para comenzar múltiples instancias de la CLI juntas en una sola sesión tmux . Para usarlo, navegue al directorio raíz de este repositorio y ejecute
Scripts/start_clis Alice Bob Charles Dave ... o por muchos clientes que desee comenzar. Para detener a todos los clientes a la vez, presione Ctrl + B y luego escriba :kill-session y presione ENTER.
Construir y ejecutar la aplicación iOS solo es posible en macOS, así que asegúrese de tener lo siguiente disponible:
Abrir el subdirectorio DistributedChatApp en Xcode y construir/ejecutar el proyecto.