Messenger ใช้ SignalR และ BLAZOR SERVER
เราใช้ SignalR ในแอปพลิเคชันด้านเซิร์ฟเวอร์ Blazor ของเราและจัดเก็บข้อความทั้งหมดในฐานข้อมูล
ในการส่งข้อความไปยังผู้ใช้เฉพาะเราใช้ ConnectionID แทนคุณสมบัติผู้ใช้จากนั้นจัดเก็บ ID การเชื่อมต่อในฐานข้อมูลของเรา นี่เป็นวิธีที่สร้างผู้ส่งสารและสถานะออนไลน์ของผู้ใช้ จากลิงค์ด้านล่าง: https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/mapping-users-to-connections
วิธีที่ดีที่สุดสำหรับแอปพลิเคชันของคุณขึ้นอยู่กับ:
1- จำนวนเว็บเซิร์ฟเวอร์ที่โฮสต์แอปพลิเคชันของคุณ
2- ไม่ว่าคุณจะต้องได้รับรายชื่อผู้ใช้ที่เชื่อมต่ออยู่ในปัจจุบันหรือไม่
3- ไม่ว่าคุณจะต้องคงอยู่กลุ่มและข้อมูลผู้ใช้เมื่อแอปพลิเคชันหรือเซิร์ฟเวอร์รีสตาร์ท
4- ไม่ว่าจะเป็นเวลาแฝงของการเรียกเซิร์ฟเวอร์ภายนอกเป็นปัญหาหรือไม่
เราใช้วิธีที่สี่และใช้ SQL Server เพื่อจัดเก็บข้อมูลทั้งหมดที่เราต้องการสำหรับแอปพลิเคชันของเราตัวอย่างเช่นเราสามารถพูดถึง ID การเชื่อมต่อหรือ SenderUserId และ ReceVieverUserId จากนั้นเราสามารถส่งข้อมูลการเชื่อมต่อไปยังผู้ส่งและ ID ผู้ใช้