



Um mensageiro de bate -papo distribuído que usa redes Bluetooth Le Mesh.
O projeto consiste nos seguintes componentes:
DistributedChatKit : O aplicativo abstrato, independente da plataforma, independente do transporte (usa interface para transmitir/receber mensagens)DistributedChatBluetooth : uma abstração sobre os transportes Bluetooth LE específicos da plataformaDistributedChatApp : A implementação do iOS/MacOS, usa o Bluetooth LE como transporte, não requer um servidorDistributedChatCLI : A implementação da CLI usa HTTP/WebSockets como transporte com o servidor de simulação ou Bluetooth LE (WIP)DistributedChatSimulationProtocol : o protocolo baseado em JSON de alto nível usado entre CLI e servidor de simulaçãoDistributedChatSimulationServer : O servidor complementar para a CLI, retransmite mensagens entre nós da CLI conectada, fornece interface da web para configurar links entre nósScripts : scripts para lançar instâncias da CLI convenientemente e testar o transporte BLEO gráfico de dependência entre esses pacotes se parece com o seguinte:
%% {init: {"FlowChart": {"DefaulTrendeser": "Elk"}}} %%
Fluxograma bt
Sub-plataforma cruzada
DistributedChatBluetooth -> distribuídoChatkit
DistributedChatcli -> distribuídoChatkit
DistributedChatCli -> distribuídoChatBluetooth
DistributedChatCli -> distribuídoChatsimulationProtocol
DistributedChatsimulationServer -> distribuídoChatsimulationProtocol
fim
SUBRAPHA "PLATAFORMAS APPLES"
DistributedChatapp -> DistributedChatkit
DistributedChatapp -> DistributedChatBluetooth
fim
Primeiro, certifique -se de ter o Swift 5.10+ ou o mais recente instalado. Versões recentes para Ubuntu e MacOS podem ser encontradas aqui.
Para executar o servidor de simulação, navegue no diretório DistributedChatSimulationServer e execute:
swift run A interface da Web agora deve estar acessível em http://localhost:8080 .
Para iniciar uma única instância da CLI, verifique se o servidor de simulação está em execução, navegue até DistributedChatCLI e execute:
swift run distributed-chat --name AliceVocê pode substituir qualquer nome por Alice. Depois que a CLI começar, o nome escolhido deve aparecer como um nó na interface da Web do servidor de simulação.
Por conveniência, existe um script bash para iniciar várias instâncias da CLI juntas em uma única sessão tmux . Para usá -lo, navegue no diretório raiz deste repositório e execute
Scripts/start_clis Alice Bob Charles Dave ... ou por mais clientes que você deseja começar. Para interromper todos os clientes de uma só vez, pressione Ctrl + B e digite :kill-session e pressione Enter.
Construir e executar o aplicativo iOS só é possível no macOS, portanto, tenha o seguinte disponível:
Open the DistributedChatApp Subdiretório no Xcode e construa/execute o projeto.