Это небольшой проект, который использует CSHARP и библиотеку .NET (7.0). Эта программа позволяет создавать несколько веб -сокетов одновременно (Client -> Server и Server -> Client оба поддерживаются). Это предназначено для работы в операционных системах на основе Linux, которые поддерживают .NET 7.0 (например, с использованием пакета dotnet ). Возможно, это работает с Windows, но я не пробовал его тестировать. Этот проект также должен работать с .NET 8.0, но я тоже не проверил это.
Эта программа работает как очень простая чата один на один. При подключении клиент и сервер могут обмениваться основными текстовыми сообщениями UTF-8 друг с другом.
Я сделал этот проект, чтобы узнать больше о веб -розетках в CSHARP/.NET, а также о том, как управлять несколькими веб -сокетами, получающими/отправляют данные одновременно с помощью асинхронных методов.
Вот видео GIF, демонстрирующее функциональность программы. Мы не используем SSL в нашей демонстрации и устанавливаем клиент и сервер, оба локально, используя 127.0.0.1 (LocalHost).

Библиотека .NET 7.0 должна запустить этот проект. Вы можете установить эту библиотеку вручную или через диспетчер пакетов, если ваш Linux Distro поддерживает ее.
В системах на основе 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> - отправить/получать сообщения для клиентского подключения при индексе <idx> .<idx> - отправить/принять сообщения для сервера прослушивания при индексе <idx> .<idx> - Удалить клиент в индексе <idx> .<idx> - Удалить сервер при индексе <idx> . При подключении к сеансу чата через команды cc и cs вы можете отправить сообщение q чтобы отсоединить текущий сеанс чата и вернуться в главное меню.