1. Hiện tượng: Telegram ngốn pin bất thường
Khi người dùng mở phần "Battery Usage" trên iPhone, Telegram có thể chiếm tới
30%–40% pin, ngay cả khi không sử dụng ứng dụng (chạy nền). Thậm chí
notifications không đến, nhưng vẫn tiêu tốn tài nguyên.
2. Nguyên nhân: Cơ chế kết nối lại (Reconnect Loop)
a. Telegram dùng nhiều địa chỉ IP và port để kết nối
Telegram không chỉ dùng 1 IP – nó sử dụng:
- Nhiều domain như core.telegram.org, telegram.org, telegram.me
- Nhiều port khác nhau: 443 (HTTPS), 80 (HTTP fallback), 5222, v.v...
- Cả TCP & UDP (cho VoIP)
b. Khi bị chặn (ISP chặn IP, RST TCP)
Khi bạn mở ứng dụng trong môi trường bị chặn:
- DNS có thể resolve được (ra IP đúng)
- Nhưng khi app gửi kết nối TCP đến máy chủ => bị chặn, trả về RST hoặc timeout
- Ứng dụng không biết là "bị chặn vĩnh viễn", nên nó sẽ thử lại sau vài giây
c. Vòng lặp retry không hồi kết
Telegram client được lập trình để:
- Sau mỗi lần thất bại, tăng dần thời gian retry, rồi lặp lại
- Vẫn giữ session mở, queue thông báo push
- Tạo các kết nối TLS mới (mỗi lần tốn CPU & pin)
3. Tác động cụ thể tới điện thoại
Tác động | Chi tiết |
---|
Hao pin | Cứ 5–15 giây, app lại thử reconnect, tạo kết nối TLS, gửi DNS => ngốn pin |
🌡 Nhiệt máy | CPU nền bị kích hoạt liên tục dù bạn không dùng app |
Không nhận được thông báo | Do không kết nối được máy chủ, mọi thông báo đều bị mất |
Tăng lưu lượng nền | Dù không thành công, vẫn có request gửi đi qua mạng |
5. Giải pháp giảm hao pin
Giải pháp | Tác dụng | Ghi chú |
---|
Tắt "Background App Refresh" |  | Giảm việc chạy ngầm |
Tắt "Push Notifications" |  | Nhưng mất thông báo |
Tắt quyền mạng (Cellular/WiFi) |  | Coi như tắt Telegram |
Tắt hẳn Telegram khi không dùng |  | Bắt buộc phải quit app hoàn toàn |