นี่เป็นโครงการขนาดเล็กที่ใช้ CSHARP และ. NET Library (7.0) โปรแกรมนี้ช่วยให้คุณสามารถสร้างช่องเสียบเว็บหลายช่องในครั้งเดียว (ไคลเอนต์ -> เซิร์ฟเวอร์และเซิร์ฟเวอร์ -> ไคลเอนต์ทั้งสองรองรับ) สิ่งนี้มีวัตถุประสงค์เพื่อทำงานบนระบบปฏิบัติการที่ใช้ 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 อย่างไรก็ตามสามารถเปลี่ยนแปลงได้ผ่านตัวเลือกบรรทัดคำสั่ง PATH 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 ใช้ หมายเลข<idx> - ส่ง/รับข้อความสำหรับการเชื่อมต่อไคลเอนต์ที่ดัชนี <idx><idx> - ส่ง/รับข้อความสำหรับฟังเซิร์ฟเวอร์ฟังที่ดัชนี <idx><idx> - ลบไคลเอนต์ที่ดัชนี <idx><idx> - ลบเซิร์ฟเวอร์ที่ดัชนี <idx> เมื่อเชื่อมต่อกับเซสชันการแชทผ่านคำสั่ง cc และ cs คุณสามารถส่งข้อความ q เพื่อถอดเซสชันการแชทปัจจุบันและกลับไปที่เมนูหลัก