Dies ist ein kleines Projekt, das CSHARP und die .NET -Bibliothek (7.0) verwendet. Mit diesem Programm können Sie mehrere Web -Sockets gleichzeitig festlegen (Client -> Server und Server -> Client, beide unterstützt). Dies soll auf Linux-basierten Betriebssystemen ausgeführt werden, die .NET 7.0 (z. B. mit dem dotnet -Paket) unterstützen. Es ist möglich, dass dies mit Windows funktioniert, aber ich habe nicht versucht, es zu testen. Dieses Projekt sollte auch mit .NET 8.0 funktionieren, aber ich habe das auch nicht getestet.
Dieses Programm ist ein sehr einfacher Einzelgesprächsraum. Wenn der Client und der Server verbunden sind, können er grundlegende UTF-8-Textnachrichten miteinander austauschen.
Ich habe dieses Projekt gemacht, um mehr über Web -Sockets in CSHARP/.NET zu erfahren, und wie Sie mehrere Web -Sockets verwalten, die Daten gleichzeitig über asynchrone Methoden empfangen/senden.
Hier ist ein GIF -Video, das die Funktionalität des Programms demonstriert. Wir verwenden SSL in unserer Demonstration nicht und stellen den Client und den Server beide lokal mit 127.0.0.1 (Localhost) ein.

Die .NET 7.0 -Bibliothek ist erforderlich, um dieses Projekt auszuführen. Sie können diese Bibliothek manuell oder über einen Paketmanager installieren, wenn Ihre Linux -Distribution sie unterstützt.
Auf Ubuntu/Debian-basierten Systemen können Sie DOTNET mithilfe der folgenden Befehl (en) installieren.
# 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.0Wenn Sie das Projekt bauen und ausführen möchten. Sie können den folgenden Befehl verwenden.
dotnet runWenn Sie das Projekt nur erstellen möchten, können Sie den folgenden Befehl verwenden.
dotnet build Stellen Sie sicher, dass Sie sich im selben Verzeichnis wie die Datei csharp-websockets.csproj Datei bei der Ausführung der obigen Befehle befinden.
Die folgenden Befehlszeilenargumente werden unterstützt.
./conf.json . Eine Konfigurationsdatei im Dateisystem wird über die JSON -Syntax gelesen und analysiert. Der Standardpfad, auf den es überprüft, ist ./conf.json . Es kann jedoch über die oben aufgeführte Konfigurationspfadoption geändert werden.
Hier sind die Konfigurationsoptionen. Bitte beachten Sie, dass Sie die Kommentare ( // ) entfernen müssen, wenn Sie unten kopieren. Ich empfehle einen Blick auf die Datei conf.ex.json, wenn Sie die Konfiguration ohne Fehler kopieren möchten.
{
// 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
}
]
}
Beim Starten des Programms werden Sie mit den folgenden Befehlen aufgefordert, die Sie verwenden können.
<ip> <port> <ssl> - Stellen Sie eine neue Client -Verbindung zu <ip> : <port> fest. <ssl> ist optional und zu deaktivieren, um SSL zu deaktivieren, verwenden Sie Nr .<idx> - Senden/Empfangen von Nachrichten für die Clientverbindung unter Index <idx> .<idx> - Senden/Empfangen von Nachrichten für den Listen -Server unter Index <idx> .<idx> - Entfernen Sie den Client bei Index <idx> .<idx> - Der Server unter Index <idx> entfernen. Wenn Sie über die cc und cs -Befehle mit einer Chat -Sitzung verbunden sind, können Sie die Nachricht q senden, um die aktuelle Chat -Sitzung zu lösen und zum Hauptmenü zurückzukehren.