Este é um pequeno projeto que utiliza o CSharp e a biblioteca .NET (7.0). Este programa permite que você estabeleça vários soquetes da Web de uma só vez (cliente -> servidor e servidor -> cliente suportado). Destina-se a ser executado em sistemas operacionais baseados em Linux que suportam o .NET 7.0 (por exemplo, usando o pacote dotnet ). É possível que isso funcione com o Windows, mas não tentei testá -lo. Este projeto também deve funcionar com o .NET 8.0, mas também não testei isso.
Este programa opera como uma sala de bate-papo individual muito simples. Quando conectado, o cliente e o servidor podem trocar mensagens básicas de texto UTF-8 entre si.
Fiz este projeto para saber mais sobre soquetes da Web no CSharp/.NET, juntamente com como gerenciar vários soquetes da Web recebendo/enviando dados simultaneamente por meio de métodos assíncronos.
Aqui está um vídeo GIF demonstrando a funcionalidade do programa. Não usamos o SSL em nossa demonstração e estabelecemos o cliente e o servidor, ambos localmente usando 127.0.0.1 (localhost).

A biblioteca .NET 7.0 é necessária para executar este projeto. Você pode instalar esta biblioteca manualmente ou através de um gerenciador de pacotes se o seu Linux Distro o suportar.
Nos sistemas baseados em Ubuntu/Debian, você pode instalar o DOTNET usando os comando (s) abaixo (s).
# 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.0Se você deseja construir e executar o projeto. Você pode usar o seguinte comando.
dotnet runSe você deseja criar apenas o projeto, pode usar o seguinte comando.
dotnet build Verifique se você está no mesmo diretório que o arquivo csharp-websockets.csproj ao executar os comandos acima.
Os seguintes argumentos da linha de comando são suportados.
./conf.json . Um arquivo de configuração no sistema de arquivos é lido e analisado pela sintaxe JSON. O caminho padrão que ele verifica é ./conf.json . No entanto, ele pode ser alterado através da opção de linha de comando do caminho de configuração listada acima.
Aqui estão as opções de configuração. Lembre -se de que você precisará remover os comentários ( // ) se copiar abaixo. Eu recomendo dar uma olhada no arquivo conf.ex.json se você deseja copiar a configuração sem nenhum erro.
{
// 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
}
]
}
Ao iniciar o programa, você será solicitado com os seguintes comandos que poderá usar.
<ip> <port> <ssl> - Estabeleça uma nova conexão do cliente com <ip> : <port> . <ssl> é opcional e para desativar o SSL, use não .<idx> - Enviar/receber mensagens para conexão com o cliente no índice <idx> .<idx> - Enviar/receber mensagens para o servidor de escuta no índice <idx> .<idx> - Remova o cliente no índice <idx> .<idx> - Remova o servidor no índice <idx> . Quando conectado a uma sessão de bate -papo por meio dos comandos cc e cs , você pode enviar a mensagem q para destacar a sessão de bate -papo atual e retornar ao menu principal.