WebSocket

HTTP là hỏi rồi đáp. WebSocket là một đường dây mở sẵn, hai bên nói lúc nào cũng được. Ba chặng, đi từ mở được kết nối tới giữ cho nó sống.

9 cột mốc · 2 có bài trong app

Bắt đầu
  1. 1Mở được một kết nối

    Hiểu WebSocket khác một request bình thường ở chỗ nào.

  2. 2Giữ cho đường dây sống

    Kết nối sẽ đứt. Chuẩn bị sẵn cho lúc đó.

    • Kết nối lạitự tìm hiểuWifi chập, máy ngủ, proxy cắt. Tự nối lại và thưa dần là việc bắt buộc, không phải tuỳ chọn.
    • Heartbeattự tìm hiểuPing đều đặn để biết đường dây còn sống, thay vì tưởng là còn.
    • Hàng đợi tin nhắntự tìm hiểuTin nhắn gửi lúc mất kết nối phải nằm chờ, không được bốc hơi.
  3. 3Nhiều người cùng lúc

    Từ một kết nối lên tới nhiều nghìn kết nối.

    • Phòng và kênhtự tìm hiểuGửi cho đúng nhóm người, không phát cho tất cả.
    • Nhiều máy chủtự tìm hiểuHai người vào hai máy chủ khác nhau thì cần một chỗ trung gian để tin nhắn tới được nhau.
    • Backpressuretự tìm hiểuBên nhận chậm hơn bên gửi thì tin nhắn dồn lại. Phải quyết định bỏ hay chờ.
Đích

Lộ trình dừng ở đây

Ba chặng trên đủ để làm chat, thông báo, hay bảng giá chạy thời gian thực. Phần dưới là hướng đi tiếp.

  • SSEKhi chỉ cần một chiều từ máy chủ xuống — nhẹ hơn nhiều, có bài riêng trong app.
  • CRDT · OTHai người sửa cùng một tài liệu cùng lúc mà không giẫm lên nhau.
  • WebRTCNối thẳng hai trình duyệt với nhau, không qua máy chủ.