這是一個使用CSHARP和.NET庫(7.0)的小項目。該程序允許您一次建立多個Web插座(客戶端 - >服務器和服務器 - >客戶端都受支持)。這旨在在支持.NET 7.0的基於Linux的操作系統上運行(例如,使用dotnet軟件包)。這可能與Windows一起使用,但我沒有嘗試對其進行測試。該項目也應與.NET 8.0合作,但我也沒有測試過。
該程序是一個非常簡單的一對一聊天室。連接時,客戶端和服務器可以彼此交換基本的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 。但是,可以通過上面列出的配置路徑命令行選項更改它。
這是配置選項。請記住,如果在下面複製,則需要刪除評論( // )。如果您想在沒有任何錯誤的情況下複製配置,我建議您查看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> - 以索引<idx>的方式發送/接收消息。<idx> - 在索引<idx>上發送/接收消息。<idx> - 在索引<idx>上刪除客戶端。<idx> - 在索引<idx>上刪除服務器。當通過cc和cs命令連接到聊天會話時,您可以發送消息q以分離當前的聊天會話並返回主菜單。