Rust WebRTC P2P #1 - Giới thiệu khóa học
Bài 15:29

Rust WebRTC P2P #1 - Giới thiệu khóa học

Chào mừng bạn đến với series Rust VoIP! Trong bài mở đầu, bạn sẽ nắm được bức tranh toàn cảnh: mục tiêu xây dựng Signaling Server bằng Rust, kiến trúc P2P (Browser ↔ Rust Server ↔ Browser), tech stack sử dụng (Axum, Tokio, WebSocket, MongoDB, JWT), và lộ trình 7 phần của toàn bộ series từ WebRTC đến CRM/Queue.

1. Giới thiệu khóa học

Chào mừng bạn đến với khóa học Lập trình Rust với VoIP - Phần 1: WebRTC Peer-to-Peer. Đây là series thực chiến giúp bạn xây dựng từ đầu một Signaling Server → Xử lý các cuộc gọi audio/video trực tiếp giữa hai trình duyệt → Không cần thông qua Media Server.

2. Nội dung chính trong video

• Mục tiêu khóa học: Xây dựng hoàn chỉnh một Signaling Server bằng Rust → Thiết lập kết nối P2P giữa hai trình duyệt. • Kiến trúc hệ thống: Browser A gửi SDP Offer qua Rust Server → chuyển tiếp đến Browser B. Trao đổi ICE Candidates để tìm đường kết nối tối ưu. • Media Exchange (RTP): Dữ liệu audio/video truyền trực tiếp giữa 2 browser. Rust Server không can thiệp vào luồng media.

3. Kiến trúc tổng thể

Browser A ↔ Rust Server (WebSocket) ↔ Browser B Browser A ⇄ P2P Media ⇄ Browser B Lưu ý: Media không đi qua server → Chỉ signaling đi qua Rust backend.

Mô hình Peer to Peer

4. Tech stack sử dụng

• Rust • Axum + Tokio (backend) • WebSocket • MongoDB • JWT Authentication

5. Lộ trình series (7 phần)

• Phần 1 (hiện tại): WebRTC Peer-to-Peer • Phần 2 - 6: Làm việc với Media Server — Janus, LiveKit, Kurento, Asterisk, FreePBX • Phần 7: CRM, Queue, nhạc chờ, chuyển tiếp cuộc gọi

6. Kết quả sau khóa học

Bạn sẽ có một signaling server hoàn chỉnh, cho phép 2 browser thực hiện audio/video call P2P thực tế.

7. Yêu cầu tiên quyết

Bạn nên có kiến thức cơ bản về Rust: • Ownership • Lifetimes • Traits • Async/Await

Khóa học thực chiến giúp bạn xây dựng từ đầu một Signaling Server bằng Rust, xử lý các cuộc gọi audio/video trực tiếp giữa hai trình duyệt thông qua WebRTC Peer-to-Peer mà không cần Media Server. Bạn sẽ nắm vững kiến trúc WebRTC signaling, cách trao đổi SDP Offer/Answer và ICE Candidates giữa các peer thông qua WebSocket. Khóa học sử dụng Axum + Tokio cho backend, MongoDB để lưu trữ dữ liệu, và JWT để xác thực người dùng. Đây là Phần 1 trong series 7 phần về Lập trình Rust với VoIP, bao gồm: WebRTC P2P, Media Server (Janus, LiveKit, Kurento, Asterisk, FreePBX), và hệ thống CRM/Queue/nhạc chờ/chuyển tiếp cuộc gọi. Yêu cầu tiên quyết: Kiến thức cơ bản về Rust (Ownership, Lifetimes, Traits, Async/Await).

Công nghệ sử dụng

RustWebRTCVoIPP2PAxumTokioWebSocketMongoDBJWT

Tác giả

ByteBuffer

ByteBuffer

Coder cỏ tại DTS Group và IPA Solutions

Chuyên gia về Rust và hệ thống VoIP/WebRTC. Nhiều năm kinh nghiệm xây dựng các hệ thống real-time communication với hiệu năng cao và độ trễ thấp.