Nội dung cập nhật theo thời gian thực trong tiện ích

Các bản cập nhật theo thời gian thực cung cấp một đường dẫn liên lạc tức thì từ máy chủ đến thẳng bản cài đặt tiện ích của bạn. Bạn có thể gửi và nhận dữ liệu khi sự kiện xảy ra. Cho dù bạn sử dụng công cụ này để nhắn tin nhanh, kích hoạt tác vụ trong nền hay đồng bộ hoá dữ liệu thiết bị, thì đây là một hoạt động quan trọng với nhiều dịch vụ hiện đại. Có một số tuỳ chọn để giao tiếp theo thời gian thực trong các tiện ích của Chrome.

  • Web Push (API đẩy) là một tiêu chuẩn web cho phép bạn gửi và nhận thông báo trong tiện ích của Chrome từ bất kỳ Trình cung cấp tính năng đẩy nào, hoặc thậm chí ngay cả với máy chủ web của riêng bạn.
  • chrome.gcm là một API dành riêng cho tiện ích cũ, cho phép bạn gửi và nhận thông báo bằng Giải pháp gửi thông báo qua đám mây của Firebase.
  • WebSockets là một giao thức cấp thấp cho phép bạn mở kết nối hai chiều giữa tiện ích của Chrome và máy chủ của bạn.

Các trường hợp phổ biến

Dưới đây là một số trường hợp phổ biến trong tiện ích của Chrome, trong đó việc giao tiếp theo thời gian thực là rất quan trọng:

Luôn cập nhật cho người dùng những thay đổi mới nhất.

Nếu bạn đang đồng bộ hoá tệp, chế độ cài đặt hoặc các thông tin khác giữa nhiều người dùng, thì tính năng Đẩy trên web là cách hoàn hảo để gửi các bản cập nhật ở chế độ im lặng cho tiện ích của bạn nhằm báo cho tiện ích biết để cập nhật trạng thái từ máy chủ.

Bạn có cho phép người dùng báo cáo lỗi hoặc vấn đề không? Bạn có thể tích hợp với một Trình cung cấp thông báo đẩy để cho họ biết ngay khi bạn có bản cập nhật cần chia sẻ, trực tiếp trong tiện ích của bạn.

Gửi thông báo cho người dùng.

Mặc dù bạn có thể gửi thông báo hoàn toàn ở phía máy khách, nhưng nếu bạn có logic phía máy chủ cho thông báo về ai, cái gì, ở đâu hoặc khi nào thì nên gửi thông báo thì tính năng Đẩy trên web vẫn là phương án minh hoạ tốt nhất trong tương lai.

Nếu bạn chỉ gửi thông báo đến một nhóm nhỏ người dùng, thì lựa chọn Gửi thư là lựa chọn tốt nhất. Mặc dù Giải pháp gửi thông báo qua đám mây của Firebase có cung cấp Chủ đề (còn gọi là kênh), nhưng tính năng này chỉ có trong API Gửi thông báo qua đám mây HTTP. Phiên bản này khác với phiên bản cũ mà chrome.gcm sử dụng. Nếu bạn muốn gửi thông báo rộng cho tất cả người dùng, bao gồm cả những người sử dụng phiên bản Chrome cũ (trước Chrome 121), thì chrome.gcm là lựa chọn lý tưởng. Được xây dựng dựa trên API nhắn tin Firebase cũ, chrome.gcm đã được hỗ trợ trong Chrome trong hơn một thập kỷ qua.

Bạn có thể sử dụng tính năng đẩy trên web hoặc chrome.gcm để gửi thông báo cho người dùng khi có điều gì đó quan trọng đối với tài khoản của họ, chẳng hạn như khi có thư mới hoặc khi một tệp được chia sẻ.

Nhắn tin nhanh

Bạn cần giao tiếp hai chiều thường xuyên? thì ổ cắm web có thể là lựa chọn tốt nhất cho bạn. Thư viện này mở ra kết nối hai chiều giữa tiện ích của bạn và máy chủ (hoặc thậm chí là kết nối trực tiếp với người dùng khác). API này cho phép bạn trao đổi dữ liệu và tin nhắn theo thời gian thực. Mặc dù là một lựa chọn tuyệt vời trên web nói chung, nhưng chúng có một số hạn chế với tiện ích mà bạn cần lưu ý nếu định sử dụng.

Trong phần còn lại của hướng dẫn này, chúng ta sẽ tìm hiểu kỹ hơn về các lựa chọn có sẵn.

Thông báo đẩy bằng API đẩy

Khi sử dụng Push API, bạn có thể dùng bất kỳ Trình cung cấp dữ liệu đẩy nào để gửi thông báo đẩy và tin nhắn. Lệnh đẩy từ API đẩy sẽ được trình chạy dịch vụ của bạn xử lý ngay khi nhận được. Nếu tiện ích đã bị tạm ngưng, một thao tác đẩy sẽ đánh thức tiện ích đó hoạt động trở lại. Quy trình sử dụng mã này trong các tiện ích giống hệt như quy trình sử dụng mã này trên web mở.

Thông báo đẩy trên chrome.gcm

API chrome.gcm cung cấp kết nối trực tiếp với Giải pháp gửi thông báo qua đám mây của Firebase (FCM), một dịch vụ gửi nội dung cập nhật theo thời gian thực tới các ứng dụng web và ứng dụng dành cho thiết bị di động. Đây là một API tiện ích dành riêng cho Chrome đã được thêm vào nhiều năm trước khi Push (Đẩy) có mặt trong các trình duyệt. API này được xây dựng bằng API HTTP cũ của Firebase (nay không dùng nữa). Mặc dù các API đó không còn được dùng ở nơi khác, nhưng không được dùng nữa trong các tiện ích. Chúng sẽ tiếp tục hoạt động trong tương lai gần. Tuy nhiên, vì đây là phần phụ trợ đẩy cũ nên hệ thống này thiếu các tính năng như Chủ đề.

Mặc dù dịch vụ phụ trợ FCM là một yêu cầu khó khăn để thông báo tiếp cận người dùng trên Chrome, nhưng bạn không cần phải sử dụng chrome.gcm để gửi tin nhắn. Tất cả các nhà cung cấp dịch vụ Gửi dữ liệu đều có thể gửi và nhận thông báo cũng như sự kiện đến một tài khoản Firebase bằng cách sử dụng chế độ Gửi dữ liệu trên web. Mặc dù đây vẫn là API Tiện ích Chrome được hỗ trợ đầy đủ, nhưng tốt nhất bạn nên ưu tiên các tiêu chuẩn web như API Đẩy hơn so với các tiêu chuẩn web dành riêng cho các tiện ích như thế này. Nếu trường hợp sử dụng của bạn phù hợp nhất với chrome.gcm, bạn có thể tham khảo hướng dẫn chi tiết về cách thiết lập chrome.gcm từ đầu.

Thông báo theo thời gian thực bằng WebSockets

WebSockets là nền tảng của thông báo theo thời gian thực trên web trong hơn một thập kỷ qua. Chúng là lựa chọn nên dùng cho các sự kiện theo thời gian thực trên web, mang đến cuộc trò chuyện hai chiều liên tục. WebSocket hoạt động trong nhiều thành phần tiện ích, có thể là tập lệnh nội dung, cửa sổ bật lên, bảng điều khiển phụ hoặc trình chạy dịch vụ nền. Nói chung, mặc dù đây là một lựa chọn tuyệt vời trên web, nhưng chúng vẫn có một số hạn chế với các tiện ích mà bạn cần lưu ý nếu định sử dụng.

Không phù hợp với thông báo đẩy

WebSocket chạy trong nền tảng web, thay vì sử dụng API nền tảng tiện ích như chrome.gcm, Chrome không có cách nào để đánh thức tiện ích khi kết nối Websocket bắt đầu bên ngoài tiện ích của bạn.

Chỉ những kết nối đang hoạt động

Chrome sẽ tạm ngưng các tiện ích không được dùng sau 30 giây. Chrome sẽ chuyển sang một số phương pháp phỏng đoán để xác định xem tiện ích có "đang được sử dụng" hay không, một trong số đó là kết nối WebSocket đang hoạt động. Chrome sẽ không tạm ngưng tiện ích đã gửi hoặc nhận thông báo WebSocket trong 30 giây qua. Nếu đang sử dụng WebSockets trong tiện ích và cần đảm bảo rằng tiện ích này không bị đóng sớm, bạn có thể gửi một thông báo Nhịp tim để duy trì kết nối. Quá trình này bao gồm việc gửi thông báo định kỳ tới máy chủ, cho cả ứng dụng và Chrome biết rằng bạn vẫn đang hoạt động. Bạn có thể xem ví dụ về cách duy trì hoạt động vô thời hạn của một ổ cắm web trong tài liệu về WebSocket.