これは、CSHARPと.NETライブラリ(7.0)を利用する小さなプロジェクトです。このプログラムを使用すると、複数のWebソケットを一度に確立できます(クライアント - >サーバーとサーバー - >クライアントの両方がサポートされています)。これは、.NET 7.0をサポートするLinuxベースのオペレーティングシステムで実行することを目的としています(例: dotnetパッケージの使用)。これはWindowsで動作する可能性がありますが、テストを試みていません。このプロジェクトは.NET 8.0でも動作するはずですが、私もそれをテストしていません。
このプログラムは、非常にシンプルな1対1のチャットルームとして動作します。接続すると、クライアントとサーバーは基本的なUTF-8テキストメッセージを互いに交換できます。
このプロジェクトを作成し、CSHARP/.NETのWebソケットの詳細と、非同期メソッドを介してデータを同時に受信/送信する複数のWebソケットを管理する方法を学びました。
これは、プログラムの機能を示すGIFビデオです。デモでSSLを使用せず、 127.0.0.1 (localhost)を使用して、クライアントとサーバーをローカルで確立します。

.NET 7.0ライブラリは、このプロジェクトを実行するために必要です。 Linuxディストリビューションがサポートしている場合は、このライブラリを手動で、またはパッケージマネージャーを介してインストールできます。
ubuntu/debianベースのシステムでは、以下のコマンドを使用してdotnetをインストールできます。
# Typically this is only required for Debian.
wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt update
# Install .NET 7.0.
sudo apt install -y dotnet-sdk-7.0プロジェクトを構築して実行したい場合。次のコマンドを使用できます。
dotnet runプロジェクトのみを構築する場合は、次のコマンドを使用できます。
dotnet build上記のコマンドを実行するときにcsharp-websockets.csprojファイルと同じディレクトリにいることを確認してください。
次のコマンドライン引数がサポートされています。
./conf.jsonを探します。ファイルシステム上の構成ファイルは、JSON構文を介して読み取り、解析されます。チェックするデフォルトのパスは./conf.jsonです。ただし、上記のConfig Pathコマンドラインオプションを介して変更できます。
構成オプションは次のとおりです。以下にコピーする場合は、コメント( // )を削除する必要があることに注意してください。エラーなしで構成をコピーする場合は、conf.ex.jsonファイルを見ることをお勧めします。
{
// Whether to activate the listen server.
"listen": true,
// The host to listen on.
"listenHost": "127.0.0.1",
// The port to listen on.
"listenPort": 2222,
// Whether to listen with SSL.
"listenSsl": false,
// An array of startup client connections.
"startupConnections": [
{
// The startup connection host.
"host": "127.0.0.1",
// The startup connection port.
"port": 2223,
// Whether to use SSL with the startup connection.
"ssl": false
}
]
}
プログラムを開始すると、使用できるコマンドが次のコマンドを求められます。
<ip> <port> <ssl> - <ip> : <port>への新しいクライアント接続を確立します。 <ssl>はオプションであり、SSLを無効にするために、 NOを使用します。<idx> - index <idx>でクライアント接続のメッセージを送信/受信します。<idx> - index <idx>で聞くサーバーのメッセージを送信/受信します。<idx> - index <idx>でクライアントを削除します。<idx> - index <idx>でサーバーを削除します。 ccおよびcsコマンドを介してチャットセッションに接続すると、 qを送信して現在のチャットセッションを取り外してメインメニューに戻すことができます。