2010-10-26 36 views
6

Tôi có một ứng dụng iPad hoạt động cả trên và ngoại tuyến nhưng khi tôi ngoại tuyến, có các cuộc gọi dịch vụ web cần được thực hiện khi tính khả dụng trực tuyến là một tùy chọn một lần nữa.hàng đợi tin nhắn cho iOS/iPad - giống như MSMQ?

Ví dụ: Một ứng dụng khách mới được thêm vào ứng dụng, điều này cần được gửi tới dịch vụ web nhưng vì chúng tôi ngoại tuyến, chúng tôi không muốn làm chậm người dùng để chúng tôi thêm địa phương và tiếp tục nhưng chúng tôi cần để nhớ rằng cuộc gọi đó cần phải được thực hiện đối với dịch vụ web khi chúng tôi có thể. Điều tương tự cho việc đặt hàng và như vậy.

Có một số loại hàng đợi có thể thiết lập sẽ kích hoạt khi chúng tôi có kết nối không?

Trả lời

3

Tôi không nghĩ rằng chi phí của một công cụ nặng như MSMQ là cần thiết cho một hành động đơn giản. Bạn có thể sử dụng Dữ liệu cốt lõi, các đối tượng được quản lý liên tục với dữ liệu cần thiết để gọi dịch vụ web và chỉ xóa từng đối tượng được quản lý sau một bài đăng thành công. Có thể hoặc có thể không phải là cách để nắm bắt một sự kiện khi kết nối bắt đầu, nhưng bạn chắc chắn có thể tạo một NSTimer lặp lại khi thông điệp đầu tiên được xếp hàng đợi và dừng nó khi không có thông báo trong hàng đợi.

+0

hàng đợi phần là câu hỏi của tôi, tìm kiếm một hướng ít về cách thực hiện điều đó. không chắc chắn cách xếp hàng các cuộc gọi hàm. Tôi chỉ sử dụng MSMQ làm ví dụ vì tôi đã sử dụng nó trong quá khứ. – Slee

+0

Tôi vừa nói với bạn cách tạo hàng đợi. :-) Sử dụng dữ liệu lõi. Bất kỳ bộ sưu tập được sắp xếp nào đều có hiệu quả là một hàng đợi. Lấy một, xử lý nó, xóa nó đi. Bạn thậm chí có thể xếp hàng các cuộc gọi hàm, nhưng có lẽ không cần, vì luồng xử lý của bạn có thể biết hàm nào cần gọi dựa trên dữ liệu mà nó tìm nạp. –

+0

không có gì giống như nhìn thấy rõ ràng - cảm ơn bạn! – Slee

1

Thư viện này xử lý hàng đợi tin nhắn liên tục ngoại tuyến cho các tình huống như bạn mô tả. Nó nói alpha so với năm ngoái, nhưng tôi đã khẳng định nó được sử dụng trong các ứng dụng sản xuất:

https://github.com/gcamp/IPOfflineQueue

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