Tính năng cập nhật theo thời gian thực cung cấp một đường dẫn giao tiếp tức thì từ máy chủ của bạn trực tiếp đến các lượt cài đặt tiện ích. Bạn có thể gửi và nhận dữ liệu khi các sự kiện diễn ra. Cho dù bạn dùng nó để nhắn tin tức thời, kích hoạt các tác vụ ở chế độ nền hay đồng bộ hoá dữ liệu trên thiết bị, thì đây là một thao tác quan trọng đối với một số dịch vụ hiện đại. Có một số lựa chọn để giao tiếp theo thời gian thực trong các tiện ích của Chrome.
- Thông báo đẩy trên web (hay còn gọi là Push API) là một tiêu chuẩn web cho phép bạn gửi và nhận thông báo trong một tiện ích của Chrome từ bất kỳ Nhà cung cấp dịch vụ đẩy nào, hoặc thậm chí là từ 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 tin nhắn 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ở một kết nối hai chiều giữa tiện ích của Chrome và máy chủ.
Các trường hợp phổ biến
Sau đây là một số trường hợp phổ biến trong tiện ích Chrome mà việc giao tiếp theo thời gian thực là rất quan trọng:
Giúp người dùng nắm bắt thông tin cập nhật về các thay đổi.
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ì Thông báo đẩy trên web là cách hoàn hảo để gửi thông tin cập nhật thầm lặng đến tiện ích của bạn để cho tiện ích biết cần 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 nhà cung cấp Push để cho họ biết ngay khi bạn có thông tin cập nhật cần chia sẻ, ngay 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 có logic phía máy chủ về người nhận, nội dung, vị trí hoặc thời điểm gửi thông báo, thì Thông báo đẩy trên web là lựa chọn phù hợp nhất cho tương lai.
Nếu bạn chỉ muốn gửi thông báo đến một nhóm nhỏ người dùng, thì Push là lựa chọn phù hợp 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 HTTP Cloud Messaging API của họ. 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 tin nhắn diện rộng cho tất cả người dùng, kể cả những người dùng các 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 trên các API nhắn tin Legacy Firebase, chrome.gcm đã được hỗ trợ trong Chrome hơn một thập kỷ.
Bạn có thể sử dụng Web Push hoặc chrome.gcm để gửi thông báo cho người dùng khi có điều gì đó quan trọng xảy ra với tài khoản của họ, chẳng hạn như khi có tin nhắn mới hoặc khi một tệp được chia sẻ.
Nhắn tin tức thời
Bạn cần giao tiếp thường xuyên theo cả hai chiều? Khi đó, web socket có thể là lựa chọn phù hợp nhất với bạn. Thao tác này sẽ mở một kết nối hai chiều giữa tiện ích và máy chủ của bạn (hoặc thậm chí kết nối trực tiếp với những người dùng khác). Nó cho phép bạn trao đổi dữ liệu và thông báo theo thời gian thực. Mặc dù đây 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ế đối với các tiện ích mà bạn cần lưu ý nếu dự định sử dụng chú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 hiện có.
Thông báo đẩy bằng Push API
Khi sử dụng Push API, bạn có thể dùng bất kỳ nhà cung cấp Push nào để gửi thông báo đẩy và tin nhắn. Thông báo đẩy từ Push API 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, thì một thông báo đẩy sẽ kích hoạt lại tiện ích đó. Quy trình sử dụng API này trong các tiện ích hoàn toàn giống với quy trình bạn sẽ sử dụng API này trên web mở.
Thông báo đẩy bằng 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 thông tin cập nhật theo thời gian thực đến các ứng dụng web và ứng dụng 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 có trong trình duyệt. Ứng dụng này được tạo bằng các API HTTP cũ (hiện không được dùng nữa) của Firebase. Mặc dù các API đó đã ngừng hoạt động ở những nơi khác, nhưng chúng không ngừng hoạt động trong các tiện ích. Các API này sẽ tiếp tục hoạt động trong tương lai gần. Tuy nhiên, vì đây là dịch vụ phụ trợ thông báo đẩy cũ, nên dịch vụ 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 bắt buộc để thông báo đến được người dùng trong Chrome, nhưng bạn không cần sử dụng chrome.gcm để gửi thông báo.
Tất cả nhà cung cấp Push đề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 thông báo đẩy trên web. Mặc dù đây vẫn là một API Tiện ích Chrome được hỗ trợ đầy đủ, nhưng tốt nhất là bạn nên ưu tiên các tiêu chuẩn web như Push API thay vì các tiêu chuẩn dành riêng cho tiện ích như API này. Nếu trường hợp sử dụng của bạn phù hợp nhất với chrome.gcm, thì có một 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 tính năng nhắn tin theo thời gian thực trên web trong hơn một thập kỷ. Đây là lựa chọn mặc định cho các sự kiện theo thời gian thực trên web, mang đến một cuộc trò chuyện liên tục, hai chiều. WebSocket hoạt động trong nhiều thành phần tiện ích, cho dù đó là tập lệnh nội dung, cửa sổ bật lên, bảng điều khiển bên hay các worker dịch vụ chạy trong nền. Mặc dù là một lựa chọn tuyệt vời trên web nói chung, nhưng các tiện ích này có một số hạn chế mà bạn cần lưu ý nếu dự định sử dụng chúng.
Không phù hợp với thông báo đẩy
Vì WebSockets 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 để kích hoạt tiện ích của bạn khi một kết nối Websocket được bắt đầu bên ngoài tiện ích của bạn.
Chỉ kết nối đang hoạt động
Chrome sẽ tạm ngưng các tiện ích không được sử dụng sau 30 giây. Một số phương pháp phỏng đoán được đưa vào Chrome để 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 WebSocket trong tiện ích của mình và cần đảm bảo rằng WebSocket không bị đóng quá sớm, bạn có thể gửi thông báo xung nhịp để duy trì kết nối. Việc này bao gồm gửi thông báo định kỳ đến máy chủ, cho cả máy chủ 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 của websocket vô thời hạn trong tài liệu về WebSocket của chúng tôi.