这是一个使用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以分离当前的聊天会话并返回主菜单。