Bối cảnh và vấn đề nghiên cứu

Lý do chọn đề tài và bối cảnh thực tiễn

Trong bối cảnh công nghệ thông tin và truyền thông phát triển mạnh mẽ, việc duy trì kết nối nhanh chóng và hiệu quả giữa các thành viên trong một tổ chức đóng vai trò then chốt. Sự gia tăng của xu hướng làm việc từ xa cùng quá trình toàn cầu hóa đòi hỏi các tổ chức phải duy trì liên lạc liên tục, không bị giới hạn bởi khoảng cách địa lý hay thời gian. Đối với các tổ chức quy mô nhỏ, nhu cầu tối ưu hóa quy trình giao tiếp nội bộ nhằm nâng cao hiệu suất làm việc nhóm, tiết kiệm chi phí vận hành và quản lý tiến độ công việc là rất cấp thiết.

Bên cạnh yếu tố trao đổi thông tin thông thường, an toàn và bảo mật dữ liệu cũng là lý do quan trọng được tác giả xác định khi lựa chọn đề tài. Dữ liệu trao đổi trong nội bộ là tài sản cần được bảo vệ trước các nguy cơ rò rỉ hoặc truy cập trái phép. Mặc dù trên thị trường đã có các giải pháp thương mại phổ biến như Telegram, Zalo, Slack, Microsoft Teams hay Zoom, việc nghiên cứu xây dựng một hệ thống nhắn tin tức thời chuyên biệt, tích hợp đồng thời tính năng nhắn tin, trao đổi tệp tin và gọi thoại/video với giao diện tối giản, chi phí triển khai tối ưu vẫn mang tính thực tiễn cao cho các tổ chức nhỏ.

Mục tiêu và nhiệm vụ nghiên cứu

Mục tiêu tổng quát của khóa luận là xây dựng hoàn chỉnh một ứng dụng nhắn tin và gọi điện thời gian thực trên nền tảng web, đáp ứng nhu cầu giao tiếp và hội họp nội bộ của các tổ chức nhỏ.

Các nhiệm vụ nghiên cứu cụ thể được xác định bao gồm:

  1. Khảo sát thực trạng, phân tích hành vi và nhu cầu giao tiếp của người dùng trong tổ chức; khảo sát các ứng dụng tương tự (Telegram, Zalo) để xác định danh mục chức năng thiết yếu.
  2. Tìm hiểu, nghiên cứu và đánh giá các công nghệ kỹ thuật phù hợp cho hệ thống thời gian thực, bao gồm WebSocket/Socket.IO và WebRTC.
  3. Phân tích yêu cầu, thiết kế kiến trúc hệ thống, cơ sở dữ liệu quan hệ và xây dựng giao diện người dùng bằng các công cụ chuyên dụng.
  4. Hiện thực hóa hệ thống phần mềm với mô hình Client-Server, phát triển song song phía máy khách (Client) và máy chủ (Server).
  5. Thực hiện kiểm thử đơn vị (Unit test) và kiểm thử tích hợp (Integration test), sau đó triển khai hệ thống máy chủ lên nền tảng đám mây Azure.

Đối tượng và phạm vi nghiên cứu

  • Đối tượng nghiên cứu:
    • Về mặt công nghệ: Giao thức truyền thông RESTful API, giao thức WebSocket, thư viện Socket.IO, công nghệ truyền thông thời gian thực WebRTC, hệ quản trị cơ sở dữ liệu SQL Server, nền tảng ASP.NET Core (ngôn ngữ C#), framework Angular, Node.js và TypeScript.
    • Về mặt đối tượng sử dụng: Các tổ chức, nhóm làm việc có quy mô nhỏ có nhu cầu sử dụng công cụ giao tiếp nội bộ.
  • Phạm vi nghiên cứu:
    • Phạm vi môi trường: Hệ thống vận hành trên nền tảng web dựa trên kiến trúc Client-Server.
    • Phạm vi chức năng: Tập trung vào các chức năng cốt lõi gồm quản lý tài khoản (đăng ký, đăng nhập, quên mật khẩu, cập nhật hồ sơ cá nhân), quản lý danh bạ (thêm/xóa liên hệ), nhắn tin tức thời (tin nhắn văn bản cá nhân và nhóm), truyền nhận tệp tin, thực hiện cuộc gọi âm thanh/hình ảnh (Audio/Video Call) 1-1 và gọi nhóm, cùng chức năng chia sẻ màn hình trực tuyến.

Cơ sở lý thuyết và phương pháp

Khung công nghệ và nền tảng phát triển

Khóa luận tổng hợp và ứng dụng các nền tảng công nghệ phần mềm hiện đại:

  • Node.js: Nền tảng thực thi JavaScript mã nguồn mở phía máy chủ dựa trên mô hình I/O không đồng bộ và kiến trúc hướng sự kiện đơn luồng, hỗ trợ quản lý gói thông qua NPM.
  • Angular: Framework mã nguồn mở phía client do Google phát triển, xây dựng theo kiến trúc MVW (Model-View-Whatever), cung cấp các tính năng ràng buộc dữ liệu hai chiều (Two-Way Data Binding), cơ chế tiêm phụ thuộc (Dependency Injection), Directives, Components, Services và Routing cho ứng dụng đơn trang (SPA).
  • ASP.NET Core & C#: Framework đa nền tảng mã nguồn mở hiệu năng cao của Microsoft kết hợp cùng ngôn ngữ lập trình hướng đối tượng C#, hỗ trợ xây dựng dịch vụ RESTful API và xử lý nghiệp vụ backend.
  • MS SQL Server: Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) phục vụ lưu trữ, quản lý dữ liệu giao dịch trực tuyến (OLTP) với cơ chế bảo mật và toàn vẹn dữ liệu.

Giao thức truyền thông và hệ thống thời gian thực

Khóa luận đi sâu vào bản chất kỹ thuật của các giao thức truyền thông mạng:

  • WebSocket & Socket.IO: Giao thức chuẩn hóa RFC 6455 thiết lập kết nối song công (full-duplex) hai chiều qua một kết nối TCP duy nhất sau bước bắt tay (WebSocket handshake). Thư viện Socket.IO được sử dụng để quản lý kết nối client-server, cung cấp cơ chế tự động chuyển đổi giao thức (fallback), quản lý phòng (rooms) và không gian tên (namespaces).
  • WebRTC (Web Real-Time Communication): Tiêu chuẩn của W3C và IETF hỗ trợ truyền thông âm thanh, video và dữ liệu ngang hàng (Peer-to-Peer - P2P) trực tiếp giữa các trình duyệt mà không cần cài đặt plugin.
  • Cơ chế thiết lập phiên và vượt NAT:
    • Signaling Server: Máy chủ trung gian đảm nhận việc trao đổi thông tin báo hiệu ban đầu giữa các peer.
    • SDP (Session Description Protocol): Giao thức định dạng tham số phiên truyền thông (mã hóa, cổng, loại phương tiện) theo cơ chế Đề nghị / Trả lời (Offer / Answer).
    • ICE Candidate: Cơ chế tìm kiếm các địa chỉ IP/cổng ứng viên để thiết lập kênh truyền tối ưu, ưu tiên giao thức UDP.
    • Phân loại NAT: Nghiên cứu chi tiết 4 loại NAT gồm Full Cone NAT, Restricted Cone NAT, Port Restricted Cone NAT và Symmetric NAT.
    • STUN & TURN Server: Máy chủ STUN (Session Traversal Utilities for NAT) hỗ trợ thiết bị tìm kiếm IP/port công cộng và hỗ trợ kỹ thuật xuyên NAT (Hole punching); máy chủ TURN (Traversal Using Relays around NAT) đóng vai trò máy chủ chuyển tiếp dữ liệu trung gian khi gặp Symmetric NAT.
    • WebRTC Media APIs: Sử dụng API navigator.mediaDevices.getUserMedia() để thu nhận luồng MediaStream từ micro/camera và navigator.mediaDevices.getDisplayMedia() để phục vụ chia sẻ màn hình. Giao diện RTCPeerConnection là trung tâm quản lý kết nối P2P.
+-------------------------------------------------------------------------+
|                              Kiến trúc WebRTC                           |
|  +-------------------------------------------------------------------+  |
|  | Web API (W3C) - getUserMedia / getDisplayMedia / RTCPeerConnection|  |
|  +-------------------------------------------------------------------+  |
|  | WebRTC C++ API: Session Management, Voice Engine, Video Engine    |  |
|  +-------------------------------------------------------------------+  |
|  | Transport / Network: SRTP, Multiplexing, P2P (STUN + TURN + ICE)  |  |
|  +-------------------------------------------------------------------+  |
|  | Audio/Video Capture, Codecs (iSAC, iLBC, VP8), Network I/O       |  |
+-------------------------------------------------------------------------+

Phương pháp nghiên cứu và phát triển

Tác giả áp dụng mô hình Thác nước cải tiến (Modified Waterfall Model) trong suốt thời gian thực hiện 16 tuần, nhờ yêu cầu phần mềm đã được xác định cụ thể từ đầu và ít biến động. Quy trình thực hiện qua các giai đoạn:

  1. Phân tích yêu cầu và đặc tả use case.
  2. Thiết kế hệ thống (kiến trúc, cơ sở dữ liệu, giao diện người dùng bằng Figma, Draw.io, StarUML).
  3. Lập trình phát triển song song phía Client và Server.
  4. Kiểm thử đơn vị trong suốt quá trình code và kiểm thử tích hợp ở giai đoạn hoàn thiện.
  5. Triển khai dịch vụ backend và cơ sở dữ liệu lên hạ tầng điện toán đám mây Microsoft Azure.

Thiết kế và triển khai hệ thống

Kiến trúc hệ thống

Hệ thống được tổ chức theo kiến trúc Client-Server nhiều tầng:

  • Tầng Client: Xây dựng bằng Angular kết hợp TypeScript, giao tiếp với máy chủ backend qua hai kênh: HTTP/HTTPS RESTful API cho các tác vụ nghiệp vụ quản trị dữ liệu và Socket.IO Client cho các sự kiện tin nhắn thời gian thực. Đối với cuộc gọi âm thanh/hình ảnh, client sử dụng WebRTC API để truyền luồng media P2P trực tiếp giữa các trình duyệt.
  • Tầng Server:
    • Dịch vụ Web API viết bằng ASP.NET Core xử lý xác thực, phân quyền và thao tác dữ liệu với SQL Server.
    • Máy chủ tín hiệu (Signaling Server) xây dựng trên nền Node.js / Socket.IO điều phối trạng thái phòng gọi, trao đổi cấu hình SDP và danh sách ICE Candidates.
  • Hạ tầng hỗ trợ: Máy chủ STUN/TURN hỗ trợ định tuyến kết nối ngang hàng xuyên qua các cấu hình NAT/Firewall.

Đặc tả Use Case và luồng hoạt động

Hệ thống xác định các tác nhân (Actors) chính và danh mục 12 Use Case cốt lõi:

Mã Use Case Tên Use Case Mô tả chức năng
UC01 Đăng nhập Xác thực người dùng vào hệ thống bằng tài khoản và mật khẩu
UC02 Quên mật khẩu Cung cấp luồng hỗ trợ khôi phục mật khẩu
UC03 Đăng ký tài khoản Tạo tài khoản người dùng mới trong hệ thống
UC04 Thêm liên hệ Tìm kiếm và thêm người dùng khác vào danh bạ cá nhân
UC05 Xóa liên hệ Gỡ bỏ người dùng khỏi danh bạ liên lạc
UC06 Nhắn tin riêng tư Gửi và nhận tin nhắn văn bản tức thời giữa 2 cá nhân
UC07 Tạo Nhóm Thiết lập nhóm trò chuyện mới và thêm các thành viên ban đầu
UC08 Sửa thành viên nhóm Thêm hoặc xóa bỏ thành viên trong nhóm trò chuyện
UC09 Nhắn tin nhóm chat Trao đổi tin nhắn văn bản thời gian thực trong phòng nhóm
UC10 Gửi File Tải tệp tin đính kèm từ máy khách lên hệ thống để chia sẻ
UC11 Tải file Tải tệp tin đính kèm từ cuộc trò chuyện về thiết bị cục bộ
UC12 Cuộc gọi Audio/Video Khởi tạo, tham gia cuộc gọi thoại/video và chia sẻ màn hình

Luồng hoạt động (Activity Diagrams) được thiết kế chi tiết cho 4 kịch bản trọng tâm:

  1. Luồng nhắn tin: Client gửi tin nhắn qua Socket.IO -> Server tiếp nhận, lưu vào CSDL và phát sóng sự kiện (broadcast) đến các client nhận tương ứng.
  2. Luồng gửi tệp tin: Client tải file qua REST API -> Server lưu trữ file, trả về định danh/đường dẫn -> Client gửi thông điệp chứa đường dẫn file qua kênh chat.
  3. Luồng tải tệp tin: Client gửi yêu cầu truy xuất tệp qua liên kết được chia sẻ -> Server xác thực quyền truy cập và truyền luồng dữ liệu file về client.
  4. Luồng gọi thoại/video: Client A khởi tạo phiên -> Bắt luồng thiết bị (Camera/Micro) -> Tạo SDP Offer -> Gửi Offer qua Signaling Server đến Client B -> Client B nhận Offer, tạo SDP Answer và gửi lại -> Hai bên trao đổi ICE Candidates qua Signaling Server để hoàn tất thiết lập kênh P2P -> Truyền trực tiếp Audio/Video/ScreenStream.

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu quan hệ trên SQL Server được chuẩn hóa với 7 thực thể chính:

Tên bảng dữ liệu Mục đích và vai trò
User Lưu trữ thông tin định danh, tài khoản, mật khẩu và thông tin cá nhân của người dùng
Group Lưu trữ thông tin phòng trò chuyện nhóm (tên nhóm, người tạo, ngày tạo)
GroupUser Quản lý quan hệ nhiều - nhiều giữa người dùng và các nhóm tham gia
GroupCall Quản lý thông tin phiên cuộc gọi thoại/video diễn ra trong nhóm
Message Lưu trữ toàn bộ nội dung tin nhắn văn bản, thời gian gửi, người gửi, định danh hội thoại/nhóm và đường dẫn tệp đính kèm (nếu có)
Call Lưu trữ lịch sử và trạng thái các cuộc gọi cá nhân 1-1
Contact Lưu trữ danh bạ liên lạc và quan hệ kết nối giữa các người dùng

Thiết kế giao diện và kiểm thử

Hệ thống thiết kế 8 giao diện chức năng chính:

  1. Màn hình đăng nhập và Màn hình đăng ký.
  2. Màn hình chính và nhắn tin: Tích hợp danh sách hội thoại, khung chat thời gian thực và vùng hiển thị thông tin nhóm.
  3. Pop-up sửa thông tin cá nhân người dùng.
  4. Màn hình danh sách cuộc gọi.
  5. Màn hình vào cuộc gọi và Màn hình cuộc gọi chính: Hiển thị luồng video của các thành viên.
  6. Màn hình chia sẻ màn hình: Cho phép truyền luồng capture từ getDisplayMedia().

Hệ thống được kiểm thử chức năng trên các luồng nghiệp vụ:

  • Kiểm tra tính năng cấp quyền truy cập Camera và Micro từ trình duyệt.
  • Kiểm tra luồng trao đổi SDP Offer/Answer và thu thập danh sách ICE Candidates qua máy chủ tín hiệu.
  • Kiểm tra độ ổn định của tin nhắn tức thời, truyền tải file và chất lượng cuộc gọi thời gian thực.
  • Kiểm thử phân quyền truy cập: Máy chủ triển khai trên Azure chỉ cho phép các yêu cầu API chứa trường xác thực (authentication header) hợp lệ được phép truy xuất dữ liệu.

Nội dung chính theo từng chương

Chương 1: Tổng quan

Chương 1 thiết lập cơ sở thực tiễn của đề tài thông qua việc phân tích bối cảnh chuyển đổi số và nhu cầu giao tiếp nội bộ trong tổ chức. Tác giả tiến hành khảo sát và đánh giá ưu, nhược điểm của hai ứng dụng phổ biến:

  • Telegram: Sở hữu thế mạnh về mã hóa đầu cuối trong Secret Chats, tin nhắn tự hủy, hạ tầng đám mây phân tán, dung lượng nhóm lớn (tối đa 200.000 thành viên), hỗ trợ Bot API và đa nền tảng.
  • Zalo: Ưu điểm tốc độ kết nối nhanh và ổn định tại Việt Nam, giao diện thân thiện, đa dạng tính năng tích hợp (nhật ký, danh bạ điện thoại, ZaloPay, bảo mật 2FA).

Từ việc phân tích các giải pháp trên, tác giả định vị phạm vi cho sản phẩm của khóa luận: tập trung vào các chức năng cốt lõi cho tổ chức nhỏ trên nền tảng web, bao gồm gọi nhóm, chia sẻ màn hình và đơn giản hóa trải nghiệm người dùng nhằm tối ưu chi phí vận hành.

Chương 2: Cơ sở lý thuyết

Chương 2 trình bày chi tiết nền tảng công nghệ và lý thuyết mạng phục vụ xây dựng hệ thống:

  • Giới thiệu cấu trúc và nguyên lý của Node.js (mô hình I/O phi đồng bộ, đơn luồng), framework Angular (mô hình MVW, Data Binding, DI), ASP.NET Core, ngôn ngữ C# và hệ quản trị CSDL MS SQL Server.
  • Trình bày sâu về giao thức WebSocket và thư viện Socket.IO (cơ chế bắt tay, kiến trúc client/server, quản lý room/namespace).
  • Trình bày chi tiết kiến trúc WebRTC: cấu trúc Web API, cơ chế kết nối Peer-to-Peer, vai trò của Signaling server, cấu trúc chuỗi thông điệp SDP (phiên bản, ID, tham số media, cổng), quá trình thu thập ICE candidate dựa trên giao thức UDP.
  • Phân tích cơ chế hoạt động của các mô hình NAT: Full Cone NAT, Restricted Cone NAT, Port Restricted Cone NAT, Symmetric NAT; giải pháp xuyên NAT bằng kỹ thuật Hole punching qua máy chủ STUN và cơ chế chuyển tiếp relay qua máy chủ TURN.
  • Trình bày các WebRTC API liên quan đến Media Services: getUserMedia(), getDisplayMedia() và giao diện kết nối RTCPeerConnection.

Chương 3: Phân tích và thiết kế hệ thống

Chương 3 chi tiết hóa toàn bộ quy trình mô hình hóa hệ thống phần mềm:

  • Thiết kế sơ đồ kiến trúc hệ thống Client-Server nhiều tầng và sơ đồ Use Case tổng thể.
  • Xây dựng 12 bảng đặc tả Use Case chi tiết (Bảng 3.2 đến Bảng 3.13) bao gồm điều kiện tiên quyết, luồng sự kiện chính và ngoại lệ.
  • Xây dựng sơ đồ hoạt động (Activity Diagram) cho 4 quy trình nghiệp vụ: Nhắn tin, Gửi file, Tải file, và Cuộc gọi Video/Audio.
  • Thiết kế mô hình dữ liệu quan hệ gồm 7 bảng: User, Group, GroupCall, GroupUser, Message, Call, Contact kèm bảng mô tả chi tiết các trường dữ liệu (Bảng 3.14 đến Bảng 3.20).
  • Thiết kế giao diện người dùng (UI) và lập bảng mô tả biến/thuộc tính trên 8 màn hình chức năng (Bảng 3.21 đến Bảng 3.28).

Chương 4: Cài đặt và kiểm thử

Chương 4 mô tả quá trình hiện thực hóa và đánh giá chất lượng phần mềm:

  • Hướng dẫn các bước thiết lập môi trường phát triển (Visual Studio Code, Visual Studio 2022) và cấu hình máy chủ trên hạ tầng Microsoft Azure.
  • Trình bày kết quả kiểm thử chức năng ứng dụng và hệ thống gọi điện thời gian thực (Audio/Video Call).
  • Minh chứng kết quả thực nghiệm qua hình ảnh kiểm thử: kết quả cấp quyền truy cập thiết bị Camera/Microphone trên trình duyệt, kết quả đàm phán thành công chuỗi thông số SDP và các ứng viên ICE Candidate qua máy chủ tín hiệu.
  • Đánh giá tính ổn định của việc gửi nhận tin nhắn thời gian thực và cơ chế kiểm soát truy cập dữ liệu API bằng trường xác thực.

Kết quả và đóng góp

Kết quả chính đạt được

  • Xây dựng hoàn chỉnh ứng dụng nhắn tin tức thời trên nền tảng web dành cho tổ chức nhỏ, đảm bảo tích hợp đồng bộ các chức năng giao tiếp văn bản và truyền thông đa phương tiện.
  • Hiện thực hóa thành công kênh truyền thông thời gian thực sử dụng Socket.IO cho tính năng chat cá nhân/nhóm và công nghệ WebRTC cho tính năng gọi thoại, gọi video và chia sẻ màn hình.
  • Làm chủ quy trình đàm phán kết nối P2P: xử lý thành công quy trình tạo SDP Offer/Answer, trao đổi ICE Candidates, xuyên qua các dạng NAT thông thường bằng STUN và định tuyến dự phòng qua TURN.
  • Xây dựng hệ thống backend RESTful API vững chắc trên ASP.NET Core kết hợp CSDL SQL Server và triển khai thành công lên máy chủ đám mây Azure, kiểm soát bảo mật thông qua cơ chế xác thực trường API Header.

Giải pháp và đóng góp của đề tài

  • Giải pháp kỹ thuật kết hợp: Kết hợp linh hoạt giữa kiến trúc máy chủ trung tâm (phục vụ lưu trữ dữ liệu, xác thực và báo hiệu) với kiến trúc mạng ngang hàng P2P (phục vụ truyền tải âm thanh/video trực tiếp), giúp giảm thiểu tải băng thông máy chủ cho tổ chức.
  • Tài liệu hóa quy trình xây dựng: Khóa luận cung cấp một bộ hồ sơ phân tích thiết kế hoàn chỉnh từ sơ đồ kiến trúc, đặc tả Use Case, lược đồ hoạt động đến thiết kế chi tiết CSDL quan hệ cho một ứng dụng truyền thông thời gian thực.

Hạn chế và hướng phát triển

Hạn chế

  • Hệ thống hiện tập trung vận hành trên nền tảng web, chưa phát triển ứng dụng di động độc lập (Native Mobile App).
  • Việc xử lý truyền thông P2P đa điểm trong các cuộc gọi nhóm đông người có thể làm tăng mức tiêu thụ tài nguyên phần cứng và băng thông mạng tại thiết bị máy khách (client-side) do giới hạn của mô hình Mesh WebRTC.

Hướng phát triển

  • Mở rộng và nâng cấp các tính năng nâng cao của hệ thống nhằm phục vụ nhu cầu đa dạng hơn của tổ chức.
  • Phát triển ứng dụng trên các nền tảng di động (iOS, Android) để tăng tính linh hoạt cho người dùng.
  • Nghiên cứu tối ưu hóa hiệu năng truyền thông cho các cuộc họp nhóm quy mô lớn (như tích hợp máy chủ SFU/MCU).

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo thiết thực cho:

  • Sinh viên ngành Kỹ thuật phần mềm và Công nghệ thông tin: Làm tài liệu tham khảo về quy trình thực hiện một đồ án tốt nghiệp chuẩn mực theo mô hình Thác nước cải tiến, từ bước khảo sát, phân tích thiết kế hệ thống (UML, Use Case, CSDL) đến cài đặt và kiểm thử.
  • Người phát triển ứng dụng web thời gian thực: Cung cấp tài liệu chi tiết về mặt lý thuyết và cấu hình thực tế của WebRTC, giao thức WebSocket/Socket.IO, phương pháp đàm phán SDP, cơ chế vượt NAT (STUN/TURN) và cách thức tích hợp các công nghệ này vào mô hình ASP.NET Core - Angular.

Câu hỏi thường gặp

1. Khóa luận sử dụng các công nghệ chính nào cho phía Client và Server?

Phía Client được xây dựng bằng Angular, Node.js và TypeScript. Phía Server sử dụng framework ASP.NET Core viết bằng ngôn ngữ C#, kết hợp hệ quản trị cơ sở dữ liệu MS SQL Server. Các công cụ phát triển chính gồm Visual Studio Code và Visual Studio 2022.

2. Hệ thống xử lý cuộc gọi video và chia sẻ màn hình bằng cơ chế nào?

Hệ thống sử dụng công nghệ WebRTC kết hợp với giao diện RTCPeerConnection để truyền tải dữ liệu trực tiếp ngang hàng (P2P). Trình duyệt sử dụng API navigator.mediaDevices.getUserMedia() để thu nhận luồng âm thanh/hình ảnh từ camera/micro và navigator.mediaDevices.getDisplayMedia() để bắt luồng hiển thị màn hình phục vụ việc chia sẻ.

3. Vai trò của máy chủ STUN và TURN trong hệ thống WebRTC của đề tài là gì?

Máy chủ STUN giúp các thiết bị nằm sau NAT tìm kiếm địa chỉ IP và cổng công cộng của chính mình để thiết lập kết nối trực tiếp (hole punching). Trong trường hợp kết nối P2P trực tiếp thất bại do gặp phải mạng Symmetric NAT, máy chủ TURN sẽ đóng vai trò chuyển tiếp (relay) gói tin đa phương tiện giữa các bên.

4. Cơ sở dữ liệu của hệ thống gồm những bảng dữ liệu nào?

Cơ sở dữ liệu trên MS SQL Server gồm 7 bảng chính: User (thông tin người dùng), Group (nhóm trò chuyện), GroupUser (liên kết thành viên nhóm), GroupCall (thông tin cuộc gọi nhóm), Message (tin nhắn và file đính kèm), Call (lịch sử cuộc gọi) và Contact (danh bạ liên hệ).

5. Hệ thống được triển khai và bảo mật truy cập như thế nào?

Hệ thống máy chủ được triển khai trên nền tảng đám mây Microsoft Azure. Toàn bộ các yêu cầu truy xuất dữ liệu từ client đến server thông qua Web API đều bắt buộc phải chứa trường xác thực (authentication header) hợp lệ để đảm bảo an toàn thông tin.


Kết luận

Khóa luận tốt nghiệp của sinh viên Lâm Phú Sỹ đã giải quyết trọn vẹn bài toán xây dựng phần mềm nhắn tin tức thời và hội họp trực tuyến cho các tổ chức nhỏ trên nền tảng web. Đề tài kết hợp hiệu quả giữa ASP.NET Core, Angular, Socket.IO và WebRTC nhằm mang lại giải pháp giao tiếp bảo mật, tối ưu chi phí và hỗ trợ đầy đủ các tính năng gọi nhóm và chia sẻ màn hình. Toàn bộ quy trình phân tích thiết kế, mô hình hóa dữ liệu, kiểm thử và triển khai trên hạ tầng đám mây Azure đã được tác giả thực hiện và tài liệu hóa một cách chi tiết, có giá trị ứng dụng và tham khảo cao.