distributed chat
1.0.0




Bluetooth LEメッシュネットワークを使用する分散チャットメッセンジャー。
プロジェクトは、次のコンポーネントで構成されています。
DistributedChatKit :抽象アプリケーション、プラットフォームに依存しない、トランスポートに依存しない(ブロードキャスト/受信メッセージにインターフェイスを使用)DistributedChatBluetooth :プラットフォーム固有のBluetooth le Transportsを抽象化しますDistributedChatApp :iOS/MacOS実装、Bluetooth leを輸送として使用し、サーバーを必要としませんDistributedChatCLI :CLI実装は、HTTP/WebSocketsをシミュレーションサーバーでのトランスポートまたはBluetooth LE(WIP)として使用しますDistributedChatSimulationProtocol :CLIとシミュレーションサーバーの間で使用される高レベルのJSONベースのプロトコルDistributedChatSimulationServer :CLIのコンパニオンサーバーは、接続されたCLIノード間でメッセージをリレーし、ノード間でリンクを構成するためのWebインターフェイスを提供しますScripts :CLIインスタンスを便利に起動し、BLEトランスポートをテストするためのスクリプトこれらのパッケージ間の依存性グラフは次のようになります:
%% {init:{"flowchart":{"defaultrenderer": "elk"}}} %%
フローチャートbt
サブグラフクロスプラットフォーム
distributedchatbluetooth-> distributedchatkit
distributedChatcli-> distributedChatkit
distributedChatcli - > distributedChatBluetooth
distributedchatcli-> distributedchatsimulationprotocol
distributedchatsimulationer -> distributedchatsimulationprotocol
終わり
サブグラフ「アップルプラットフォーム」
DistributedChatapp-> distributedChatkit
DistributedChatapp-> distributedChatBluetooth
終わり
まず、Swift 5.10+以下を必ずインストールしてください。 UbuntuとMacOSの最近のバージョンはここにあります。
シミュレーションサーバーを実行するには、ディレクトリDistributedChatSimulationServerにナビゲートして実行します。
swift run Webインターフェイスにはhttp://localhost:8080でアクセスできるようになりました。
CLIの単一のインスタンスを開始するには、シミュレーションサーバーが実行されていることを確認し、 DistributedChatCLIに移動して実行します。
swift run distributed-chat --name Aliceアリスの名前を置き換えることができます。 CLIが開始されると、選択した名前はシミュレーションサーバーのWebインターフェイスにノードとして表示されます。
便利なため、単一のtmuxセッションでCLIの複数のインスタンスを一緒に開始するためのBASHスクリプトがあります。それを使用するには、このリポジトリのルートディレクトリに移動して実行します
Scripts/start_clis Alice Bob Charles Dave ...または、あなたが始めたい多くのクライアント。すべてのクライアントを一度に停止するには、 Ctrl + Bを押してから:kill-sessionを入力してEnterを押します。
iOSアプリの構築と実行はMacOSでのみ可能ですので、必ず次のように使用できます。
xcodeでDistributedChatAppサブディレクトリを開き、プロジェクトを構築/実行します。