5

Tôi đang làm việc trên một ứng dụng nhắn tin (như WhatsApp) và tôi có một tình huống khó xử về việc triển khai chức năng chính của nó - gửi tin nhắn từ client1 đến client2. Điều này là tôi đang sử dụng một thiết kế máy chủ tập trung, nơi khách hàng sử dụng NSURLConnection để gửi tin nhắn đến máy chủ, máy chủ không giữ và quản lý các ổ cắm mở và không thể gửi tin nhắn cho một trong các khách hàng, vì vậy khách hàng có bộ đếm thời gian và truy vấn máy chủ sau mỗi 2 giây để xem có tin nhắn mới đang chờ họ hay không. Vấn đề với cách tiếp cận này là truy vấn máy chủ mỗi 2 giây dường như tiêu diệt pin rất nhanh, vì vậy tôi nghĩ có thể thay vì máy khách truy vấn máy chủ, sử dụng APNS để khi client1 gửi tin nhắn đến máy chủ, máy chủ sẽ gửi thông báo đẩy tới client2, sau đó client2 sẽ tìm nạp dữ liệu từ máy chủ.Sử dụng APN trong ứng dụng nhắn tin

Cách tiếp cận này có hoạt động với một ứng dụng nhắn tin lớn yêu cầu sử dụng thông báo đẩy lớn không?

Trả lời

5

Có. Tôi sẽ nói cách tiếp cận này là ổn và sẽ hoạt động tốt.

Bạn cũng có thể tạo kết nối ổ cắm khi ứng dụng của bạn đang chạy ở phía trước. Nhưng cách APNS (cách ưa thích của bạn) cũng sẽ hoạt động khi người dùng đã thoát khỏi ứng dụng của bạn.

APNS có thể xử lý tải rất lớn. Có nơi chỉ có rất ít sự chậm trễ như xa như tôi nhận thấy.

Hệ thống PUSH trên iOS chỉ là kết nối HTTP với táo giúp kênh phản hồi mở trong vài giờ (như tải trang web trong một số giờ). Nó sẽ sử dụng khoảng + 10% pin của bạn. Vì vậy, tốt nhất là không nên tạo một kết nối HTTP/Ổ cắm còn sống khác và sử dụng lại kênh táo (APNS) để tiết kiệm pin cho người dùng cuối.

Trong ứng dụng của bạn, bạn sẽ nhận được Thông báo đẩy và bạn có thể phân tích cú pháp JSON-Dữ liệu và sau đó kéo/đồng bộ hóa với máy chủ của riêng bạn.

Bạn cũng nên nhớ phải làm gì, khi ứng dụng của bạn không chạy ở nền trước (sau đó bạn có thể hiển thị thông báo đã nhận dưới dạng tin nhắn APNS như WhatsApp).

+0

"Nhưng cách APNS (cách ưa thích của bạn) cũng sẽ hoạt động khi người dùng đã thoát ứng dụng của bạn" - Dù bằng cách nào tôi cũng định sử dụng APNS khi người dùng ngoại tuyến. Mối quan tâm chính của tôi là: 1. APNS có đủ nhãn hiệu để tôi có thể sử dụng nó làm cơ chế nhắn tin cốt lõi của mình hay không. 2. Apple có chấp nhận hàng nghìn hoặc hàng trăm ngàn thông báo đẩy một ngày từ máy chủ của tôi không? – Eyal

+1

1. Nếu bạn không phá vỡ "luật" táo (không có spam, không có quảng cáo), thì có. WhatApp và đồng. cũng dựa vào APNS. Và theres không có cách nào khác để làm điều đó khi bạn muốn nhận tin nhắn trong chế độ "không ứng dụng cho nền trước". 2. Có. Họ sẽ không từ chối ứng dụng vì tải cao trên APNS (ngoại trừ nội dung trong tin nhắn push của bạn không hợp lệ từ phối cảnh táo [spam, quảng cáo, v.v.]) –

Các vấn đề liên quan