2012-06-30 28 views
22

Tôi đang tạo một ứng dụng trò chuyện cho iPhone nhưng không chắc chắn về cách tin nhắn trò chuyện sẽ đến ngay lập tức.APNS trò chuyện trên iOS, ổ cắm hoặc khoảng thời gian

Tôi đã đọc hàng tấn kết quả của Google về chủ đề này. Ngoài ra một lần vào:
-http://www.raywenderlich.com/3932/how-to-create-a-socket-based-iphone-app-and-server
- http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

APNS cách tiếp cận:
Một thông báo vô hình sẽ được đẩy lên iPhone chỉ ra rằng một tin nhắn mới đã sẵn sàng để được đọc. Vì vậy, ứng dụng sẽ thực hiện yêu cầu cho tin nhắn chưa đọc. Vì vậy, thay vì bỏ phiếu bằng tay các tin nhắn mới, tôi sẽ cho phép APNS trợ giúp về điều đó. Nhưng tôi không chắc chắn?

Cách tiếp cận ổ cắm:
Tạo kết nối ổ cắm mở để chia sẻ dữ liệu. Khi tìm thấy thư mới trong db, nó sẽ tự động gửi dữ liệu đến ứng dụng. Nhưng những gì về phạm vi IP, tường lửa, tiêu thụ điện năng, những thứ khác? một lần nữa tôi không chắc chắn :(

cách tiếp cận Polling:
Thực hiện một khoảng thời gian mà tôi thăm dò ý kiến ​​yêu cầu, tiêu thụ điện năng là kẻ thù của tôi ở đây

Câu hỏi của tôi:.
- Những cách tiếp cận là
- Các đề xuất khác?
- Tôi thực sự cần một số khuyết điểm và ưu điểm từ những người có kinh nghiệm về chủ đề này. lways tốt.
Cảm ơn

+2

Bỏ phiếu cung cấp cho bạn độ tin cậy, độ trễ và kiểm soát thời gian chờ tốt hơn và cộng thêm, bạn sẽ được tự do lựa chọn cách trình bày dữ liệu của mình. Với Thông báo đẩy, bạn không đảm bảo rằng thư của bạn đã được gửi thành công. Apple không đảm bảo nó. Vì vậy, tôi sẽ không dựa vào Apple để cung cấp tin nhắn trò chuyện cho người dùng của tôi. – jweyrich

+2

Tôi nghĩ bạn hiểu sai câu hỏi. APNS không nên tự gửi tin nhắn trò chuyện, nó chỉ nên ... "chọc"/"gọi" ứng dụng mà một số tin nhắn chưa đọc mới đã sẵn sàng để đọc. –

+0

Bạn không chắc chắn về phương pháp APNS? Đẩy thông báo không yêu cầu thực hiện nền, đó là một chiến thắng lớn bởi vì một ứng dụng trong trạng thái treo tiết kiệm pin. – jweyrich

Trả lời

6

Tôi nghĩ mối quan tâm chính của bạn là cách nhận tin nhắn mới trong khi ứng dụng của bạn ở chế độ nền. Bởi vì nó không giống như tôi sẽ có một ứng dụng tin nhắn cả ngày mở khi tôi có thể nhận được thông báo với các ứng dụng như WhatsApp.

Tốt hơn so với ổ cắm TCPIP, bạn có thể sử dụng websockets. Vì nó là HTTP không có vấn đề về tường lửa, NHƯNG yêu cầu phải có kết nối vĩnh viễn với ứng dụng trên nền trước để tháo pin.

Và chỉ vì âm nhạc, vị trí hoặc giọng nói ip, được phép chạy trên nền, bạn không thể thăm dò ý kiến ​​trừ khi ứng dụng được mở. Lưu ý rằng nếu bạn đăng ký cho các tác vụ nền đó và làm điều gì đó khác, Apple sẽ thông báo và từ chối ứng dụng của bạn.

Vì vậy, hãy sử dụng APNS. Đó là những gì WhatsApp làm.

+0

Điểm tốt. Ngay cả khi tôi gắn bó với APNS, tôi vẫn tin rằng tương lai là bằng cách nào đó .. kết nối liên tục (ổ cắm hoặc những thứ khác) - nơi bạn không phải làm mới bằng tay. Cảm ơn ví dụ về WhatsApp. –

+0

Tôi chỉ thực sự quan tâm đến phần tiền cảnh. Tôi có đưa ra câu trả lời của bạn rằng WhatsApp chỉ dựa vào các thông báo đẩy để biết rằng nó phải kéo các tin nhắn mới, ngay cả khi ứng dụng đang chạy ở nền trước? – figha

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