Tức ThìWiki
Tìm
Công nghệ tức thì

Thông báo đẩy: điện thoại biết có tin mới thế nào mà không hao pin

Điện thoại nhận thông báo qua một kết nối luôn mở tới dịch vụ đẩy của hệ điều hành, APNs hoặc FCM. Máy chủ ứng dụng gửi qua dịch vụ đó, không gọi thẳng vào máy bạn.

Thông báo đẩy: điện thoại biết có tin mới thế nào mà không hao pin

Điện thoại biết có tin mới nhờ một kết nối duy nhất luôn mở giữa máy và dịch vụ thông báo của hệ điều hành: APNs của Apple với iPhone, Firebase Cloud Messaging (FCM) của Google với phần lớn máy Android. Máy chủ của ứng dụng không gọi thẳng vào điện thoại bạn; nó gửi thông báo cho dịch vụ trung gian, dịch vụ đó đẩy xuống máy qua đường kết nối đang chờ sẵn. Nhờ vậy hàng chục ứng dụng dùng chung một đường, không cái nào phải tự thức canh tin và tiêu pin.

Kéo và đẩy: hai cách nhận tin

Có hai cách để biết có tin mới:

  • Kéo (pull, hay hỏi vòng): ứng dụng cứ vài phút lại hỏi máy chủ "có gì mới không?". Đơn giản, nhưng tốn pin, tốn dữ liệu và luôn chậm: tin đến ngay sau một lần hỏi thì phải chờ tới lần hỏi kế tiếp.
  • Đẩy (push): máy giữ một kết nối mở; có tin thì máy chủ chủ động gửi xuống ngay.

Thời điện thoại phổ thông, thư điện tử trên máy thường theo kiểu kéo. Đầu những năm 2000, máy BlackBerry nổi tiếng nhờ thư đẩy: thư tới máy gần như ngay khi tới hộp thư công ty. Khi iPhone ra đời, Apple mở dịch vụ thông báo đẩy cho nhà phát triển từ iPhone OS 3 năm 2009. Google có dịch vụ tương tự cho Android từ năm 2010, sau đổi tên và hiện nay là Firebase Cloud Messaging.

Đường đi của một thông báo

  1. Đăng ký: khi bạn cài ứng dụng và cho phép thông báo, hệ điều hành cấp cho ứng dụng một mã định danh thiết bị (device token). Ứng dụng gửi mã này về máy chủ của nó.
  2. Có sự kiện: ai đó nhắn tin cho bạn, đơn hàng đổi trạng thái, ngân hàng ghi nhận biến động số dư.
  3. Máy chủ ứng dụng gọi dịch vụ đẩy: gửi nội dung thông báo kèm mã thiết bị tới APNs hoặc FCM, có xác thực để chứng minh mình đúng là ứng dụng đó.
  4. Dịch vụ đẩy chuyển xuống máy qua kết nối đang mở. Nếu máy đang tắt hay mất mạng, dịch vụ giữ lại một thời gian rồi giao khi máy có mạng trở lại.
  5. Hệ điều hành hiện thông báo, có thể đánh thức ứng dụng một chút để tải thêm dữ liệu.

Trong điều kiện tốt, từ bước 3 tới bước 5 thường chỉ mất dưới một giây đến vài giây.

Một kết nối mà không tốn pin

Giữ kết nối mở nghe có vẻ hao pin, nhưng thực ra rất tiết kiệm vì chỉ có một kết nối cho cả máy. Phần lớn thời gian đường này im lặng. Thỉnh thoảng máy gửi một gói tin rất nhỏ, gọi là nhịp tim (heartbeat), để báo "tôi vẫn ở đây" và để các thiết bị mạng giữa đường không đóng kết nối vì tưởng nó đã chết. Khoảng cách giữa các nhịp được điều chỉnh để vừa giữ kết nối vừa đỡ đánh thức sóng di động quá nhiều.

Nếu mỗi ứng dụng tự giữ kết nối riêng, mười ứng dụng sẽ đánh thức máy mười lần nhiều hơn. Đó là lý do cả Apple và Google đều buộc hoặc khuyến khích ứng dụng dùng dịch vụ đẩy chung.

Vì sao thông báo có lúc đến trễ

Nguyên nhânChuyện gì xảy raCách xử lý
Chế độ tiết kiệm pinHệ điều hành gom thông báo không khẩn lại, giao theo đợtCho ứng dụng quan trọng ngoại lệ trong phần cài đặt pin
Máy "ngủ sâu" khi để yên lâuAndroid từ bản 6 (2015) có chế độ Doze, hạn chế mạng khi máy nằm yênThông báo ưu tiên cao vẫn qua được; ứng dụng phải gửi đúng mức ưu tiên
Ứng dụng bị hệ thống tắt hẳnMột số dòng máy Android tự đóng ứng dụng chạy nền mạnh tayKhoá ứng dụng trong danh sách đa nhiệm, tắt tối ưu pin cho nó
Mạng yếu, chuyển Wi-Fi sang di độngKết nối đẩy bị đứt, phải dựng lạiThường tự hồi phục sau vài giây đến vài phút
Chế độ tập trung, không làm phiềnThông báo vẫn tới nhưng bị giấu hoặc gom lạiKiểm tra lịch và danh sách ngoại lệ

Một số dòng máy Android không có dịch vụ của Google thì dùng dịch vụ đẩy riêng của hãng; ứng dụng không hỗ trợ dịch vụ đó có thể báo tin chậm hoặc không báo.

Thông báo im lặng và tin "đã thu hồi"

Không phải thông báo đẩy nào cũng hiện lên màn hình. Có loại thông báo im lặng: máy chủ chỉ gửi một tín hiệu ngắn để đánh thức ứng dụng, cho nó tải dữ liệu mới trong nền, như đồng bộ lịch hay cập nhật hộp thư. Bạn không thấy gì, nhưng lần sau mở ứng dụng, nội dung đã sẵn sàng.

Cơ chế này giải thích vài hiện tượng quen thuộc. Một tin nhắn bị người gửi thu hồi có thể vẫn còn trên màn hình khoá một lúc, vì thông báo đã tới trước khi lệnh thu hồi tới. Hay một ứng dụng báo "có tin mới" mà mở ra chưa thấy gì, vì thông báo chỉ là tín hiệu, còn nội dung phải tải thêm và mạng đang chậm.

Hệ điều hành cũng giới hạn số lần một ứng dụng được đánh thức im lặng. Ứng dụng nào lạm dụng sẽ bị giảm ưu tiên, để pin không bị rút cạn bởi những lần thức dậy không ai thấy.

Thông báo trên trình duyệt

Trang web cũng gửi được thông báo đẩy nếu bạn bấm "Cho phép". Cơ chế giống ứng dụng: trình duyệt đăng ký với dịch vụ đẩy của hãng trình duyệt, trang web gửi thông báo qua dịch vụ đó, kèm chữ ký số để chứng minh danh tính. Nội dung được mã hoá để dịch vụ trung gian không đọc được. Nếu bạn thấy quá nhiều thông báo lạ từ trang web, vào phần cài đặt trang web của trình duyệt để thu hồi quyền.

Dọn thông báo cho đỡ rối

Thông báo đẩy được làm ra để "tức thì", nhưng không phải tin nào cũng đáng tức thì. Vài thói quen gọn gàng:

  • Mỗi tháng một lần, vào danh sách thông báo trong cài đặt, tắt hẳn những ứng dụng chỉ gửi quảng cáo.
  • Giữ âm thanh cho tin nhắn của người thân, ngân hàng, công việc; để các ứng dụng khác chỉ hiện lặng lẽ.
  • Dùng tính năng gom thông báo theo giờ (bản tóm tắt) nếu máy có.
  • Thông báo biến động số dư ngân hàng nên luôn bật: đó là cách nhanh nhất để biết tài khoản có giao dịch lạ.

Chuyện thông báo ảnh hưởng tới sự tập trung ra sao là một đề tài riêng của khoa học về chú ý; ở đây chỉ cần nhớ rằng bạn có quyền chọn tin nào được làm phiền mình.

Góc nhìn hôm nay

Đằng sau mỗi tiếng "ting" là một hệ thống được thiết kế quanh một mâu thuẫn: tin phải tới ngay, nhưng điện thoại không được thức suốt ngày. Lời giải là gom mọi ứng dụng vào một đường kết nối duy nhất, im lặng phần lớn thời gian. Phép thử nhỏ: nhắn một tin cho chính mình từ máy tính sang điện thoại, đếm số giây tới khi điện thoại rung, rồi thử lại khi máy đã nằm yên trên bàn nửa tiếng ở chế độ tiết kiệm pin. Bạn sẽ thấy rõ hệ điều hành đánh đổi giữa nhanh và bền pin như thế nào.

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

Thông báo đẩy là gì?

Thông báo đẩy là tin do máy chủ chủ động gửi xuống điện thoại hay trình duyệt mà không cần ứng dụng đang mở. Trên iPhone đi qua dịch vụ APNs của Apple, trên phần lớn máy Android đi qua Firebase Cloud Messaging của Google.

Vì sao thông báo điện thoại bị chậm?

Thường do chế độ tiết kiệm pin gom thông báo lại, máy đang ngủ sâu khi để yên lâu, ứng dụng bị hệ thống đóng ở chế độ nền hoặc mạng chập chờn. Cho ứng dụng quan trọng ngoại lệ trong phần tối ưu pin thường cải thiện rõ.

Ứng dụng không mở thì sao vẫn nhận được thông báo?

Vì thông báo không đi vào ứng dụng mà đi qua dịch vụ đẩy của hệ điều hành, vốn luôn giữ một kết nối mở. Hệ điều hành nhận rồi hiện thông báo thay cho ứng dụng, và có thể đánh thức ứng dụng một chút nếu cần.

Làm sao tắt thông báo của trang web?

Vào phần cài đặt của trình duyệt, tìm mục quyền của trang web hoặc thông báo, chọn trang web đó và chuyển sang chặn. Lần sau khi trang hỏi xin quyền, chỉ bấm cho phép nếu bạn thật sự cần tin từ trang đó.

Mở app Tức Thì

Phòng đo phản xạ — so với chính mình hôm qua

Mở app Tức Thì

Bài viết liên quan

Mở app Tức Thì

Phòng đo phản xạ — so với chính mình hôm qua

Mở app Tức Thì Xem app khác