Ini adalah proyek kecil yang memanfaatkan CSHARP dan .NET Library (7.0). Program ini memungkinkan Anda untuk membuat beberapa soket web sekaligus (klien -> server dan server -> klien keduanya didukung). Ini dimaksudkan untuk berjalan pada sistem operasi berbasis Linux yang mendukung .NET 7.0 (misalnya menggunakan paket dotnet ). Mungkin saja ini berfungsi dengan Windows, tetapi saya belum mencoba mengujinya. Proyek ini juga harus bekerja dengan .NET 8.0, tetapi saya belum mengujinya juga.
Program ini beroperasi sebagai ruang obrolan satu-satu yang sangat sederhana. Saat terhubung, klien dan server dapat bertukar pesan teks UTF-8 dasar satu sama lain.
Saya membuat proyek ini untuk mempelajari lebih lanjut tentang soket web di csharp/.net bersama dengan cara mengelola beberapa soket web yang menerima/mengirim data secara bersamaan melalui metode asinkron.
Berikut adalah video GIF yang menunjukkan fungsionalitas program. Kami tidak menggunakan SSL dalam demonstrasi kami dan membangun klien dan server keduanya secara lokal menggunakan 127.0.0.1 (LocalHost).

Perpustakaan .NET 7.0 diperlukan untuk menjalankan proyek ini. Anda dapat menginstal pustaka ini secara manual atau melalui manajer paket jika distro Linux Anda mendukungnya.
Pada sistem berbasis Ubuntu/Debian, Anda dapat menginstal Dotnet menggunakan perintah di bawah ini.
# 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.0Jika Anda ingin membangun dan menjalankan proyek. Anda dapat menggunakan perintah berikut.
dotnet runJika Anda hanya ingin membangun proyek, Anda dapat menggunakan perintah berikut.
dotnet build Pastikan Anda berada di direktori yang sama dengan file csharp-websockets.csproj saat melakukan perintah di atas.
Argumen baris perintah berikut didukung.
./conf.json . File konfigurasi pada sistem file dibaca dan diuraikan melalui sintaks JSON. Jalur default yang diperiksa adalah ./conf.json . Namun, itu dapat diubah melalui opsi baris perintah jalur konfigurasi yang tercantum di atas.
Berikut adalah opsi konfigurasi. Harap diingat bahwa Anda perlu menghapus komentar ( // ) jika menyalin di bawah ini. Saya sarankan untuk melihat file conf.ex.json jika Anda ingin menyalin konfigurasi tanpa kesalahan.
{
// 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
}
]
}
Saat memulai program, Anda akan diminta dengan perintah berikut yang dapat Anda gunakan.
<ip> <port> baru <ssl> - Buat koneksi klien baru ke <ip> : <port> . <ssl> adalah opsional dan menonaktifkan SSL, gunakan no .<idx> - Kirim/terima pesan untuk koneksi klien di indeks <idx> .<idx> - Kirim/terima pesan untuk Listen Server di Index <idx> .<idx> - Hapus klien di indeks <idx> .<idx> - Hapus server di indeks <idx> . Saat terhubung ke sesi obrolan melalui perintah cc dan cs , Anda dapat mengirim pesan q untuk melepaskan sesi obrolan saat ini dan kembali ke menu utama.