2011-12-22 6 views
18

Tôi đã tìm cách khám phá một số dữ liệu cho thông báo đẩy của apple cho khách hàng và tôi không thể tìm thấy câu trả lời là thông báo đẩy sẽ nằm trong hàng đợi bao lâu cho thiết bị ngoại tuyến trước khi nó bị xóa .Thông báo đẩy nằm trong hàng đợi bao lâu trước khi bị xóa?

Có thể có khoảng thời gian dài, 2-3 tháng chẳng hạn, trong đó thiết bị có thể không hoạt động và bị tắt nguồn. Tôi chỉ đơn giản là quan tâm đến việc biết bao lâu tôi có thể mong đợi một thông báo để nán lại, chờ đợi để được gửi đến một thiết bị ngoại tuyến, trước khi nó được tự động loại bỏ (đó là những gì tôi hiểu là những gì sẽ xảy ra).

+1

Để an toàn, máy chủ của bạn có thể hiển thị điểm cuối API cho ứng dụng của bạn, cho phép ứng dụng của bạn trực tiếp thăm dò ý kiến ​​máy chủ khi khởi chạy một tập hợp thông báo từ một ngày cụ thể. –

+1

Nếu máy chủ APNS lưu trữ thư trong một thời gian dài là một vấn đề, tại sao bạn không gửi thông báo đẩy 'trống' để tự hết hạn thư. QoS trên APNS sẽ chỉ xếp hàng một tin nhắn. –

Trả lời

17

Tài liệu dành cho nhà phát triển chính thức không rõ ràng về điều này. Từ developer.apple.com:

Dịch vụ thông báo đẩy của Apple bao gồm chất lượng mặc định của dịch vụ (QoS) thực hiện chức năng lưu trữ và chuyển tiếp. Nếu APNs cố gắng gửi thông báo nhưng thiết bị đang ngoại tuyến, QoS lưu thông báo. Nó chỉ giữ lại một thông báo cho mỗi ứng dụng trên thiết bị: thông báo cuối cùng nhận được từ nhà cung cấp cho ứng dụng đó. Khi thiết bị ngoại tuyến sau kết nối lại, QoS chuyển tiếp thông báo được lưu trữ đến thiết bị. QoS giữ lại một thông báo trong một khoảng thời gian giới hạn trước khi xóa nó.

Nhưng theo PCWorld, đó là 28 ngày:

Nếu ứng dụng đang chạy, nó được thông báo ngay lập tức. Nếu ứng dụng không chạy, thông báo được giữ trong điện thoại là được tiêu thụ khi khởi chạy tiếp theo của ứng dụng. Nếu iPhone đang ngoại tuyến khi giao hàng cố gắng của người gửi , APNS sẽ gửi thông báo cho 28 ngày.

Mặc dù 28 ngày có thể đúng trong năm 2009, tôi sẽ không ngạc nhiên nếu ngày hôm nay khác với ngày hôm nay. Sự mơ hồ trong tài liệu là một lý do tuyệt vời để Apple thay đổi khoảng thời gian chờ này.

+0

Cảm ơn. Tôi đã đọc bất cứ nơi nào từ 28-30 ngày, và vâng tôi thấy tài liệu mơ hồ chính thức về cơ bản đã nói 'cuối cùng'. Cám ơn vì đã xác nhận! – NicholasTGD

+2

Để xác minh điều này, bạn sẽ cần 28-30 tắt iPhone với các thông báo được xếp hàng đợi cho từng iPhone. Sau đó, bật một cái mỗi ngày cho đến khi bạn không nhận được tin nhắn. Họ thực sự không làm điều này dễ dàng cho chúng tôi .. – paislee

+1

Vì vậy, nếu tôi gửi một thông báo mới cho một thiết bị đã có một hàng ... thông báo mới sẽ xếp hàng và một trong hàng đợi sẽ bị xóa? Chính xác? – Jeremy

2

Khi đào các tài liệu tôi phát hiện ra rằng chúng tôi có thể sử dụng tham số 'ngày hết hạn' để kiểm soát việc xếp hàng các thông báo APNS.

Here là lời giải thích chi tiết về việc sử dụng ngày hết hạn

apns-expiration

Một UNIX ngày kỷ nguyên bày tỏ trong vài giây (UTC). Tiêu đề này xác định ngày khi thông báo không còn giá trị và có thể bị hủy bỏ.

Nếu giá trị này không đồng bộ, APN lưu trữ thông báo và cố gắng gửi ít nhất một lần, lặp lại khi cần nếu không thể gửi thông báo lần đầu tiên. Nếu giá trị là 0, APN xử lý thông báo như thể nó hết hạn ngay lập tức và không lưu trữ thông báo hoặc tìm cách gửi lại thông báo.

+2

ở đâu? url của bạn không hoạt động hoặc không hợp lệ – Shamsiddin

+0

Cố định liên kết. – Zano

+0

Rất tiếc tài liệu này không đảm bảo bất kỳ điều gì về lưu giữ. Nếu tôi chỉ định ngày hết hạn 10 năm trong tương lai, tôi rất nghi ngờ dịch vụ sẽ giữ lại nó trong thời gian dài. Ngoài ra, tài liệu bỏ qua đề cập đến những gì sẽ xảy ra nếu ngày hết hạn không được chỉ định. – augurar