13

Như bạn có thể đã thấy, Google đang di chuyển Hệ thống thông báo đẩy của nó.C2DM ĐẾN Google Cloud Messaging (GCM)

Google Developer guide for GCM

Tôi đoán tôi không một mình tự hỏi: là các thẻ thu được từ C2DM vẫn còn hiệu lực cho GCM?

Nếu không, nó có nghĩa là tôi cần tất cả người dùng của tôi để cập nhật ứng dụng của tôi với một phiên bản mới cập nhật các thẻ trên các máy chủ của tôi ...

HOẶC

tôi có thể giữ cho hệ thống song song đó là một cái gì đó tôi không nghĩ rằng đó là một giải pháp tốt

HOẶC

tiếp tục sử dụng C2DM cho đến khi nó kết thúc, sau đó tôi chết với nó :-)

Trả lời

13

Mặc dù di chuyển phía máy khách dễ dàng (chỉ cần thay đổi 'người gửi' từ địa chỉ email thành id dự án), bạn vẫn phải đối mặt với các cơn đau đầu chuyển tiếp nếu ứng dụng của bạn đang sử dụng C2DM một thời gian. Xem câu hỏi của tôi tại đây: Posting GCM notification to existing C2DM registration ids

Về cơ bản vấn đề là trong quá trình chuyển đổi, bạn cần duy trì id đăng ký thiết bị từ ứng dụng C2DM cũ và id reg mới từ ứng dụng mới hơn sử dụng GCM. Trừ khi bạn có thể buộc tất cả người dùng nâng cấp cùng một lúc, bạn phải tạo thêm logic (nghĩa là thêm cột mới trong bảng cơ sở dữ liệu để chỉ định id reg GCM) trong máy chủ để xử lý gửi thông báo cho cả C2DM và GCM cho trong tương lai gần.

Nếu máy chủ của bạn chỉ gửi thông báo tới tất cả các thiết bị, thì điều này sẽ dễ dàng di chuyển, vì bạn chỉ có thể gửi cả thông báo C2DM và GCM tới tất cả các thiết bị trong cơ sở dữ liệu của bạn. đăng ký. Khi thời gian trôi qua, bạn sẽ thấy các ID đăng ký thiết bị C2DM ít hơn và ít hơn trong cơ sở dữ liệu của mình.

+0

Rất vui vì tôi không đơn độc với vấn đề này, tôi thực sự không thích ý tưởng duy trì hai hệ thống, nhưng tôi thực sự không muốn ném các mã thông báo hiện tại của mình ... :-( –

1

migrating guide trên trang web tài liệu dành cho nhà phát triển Android.

C2DM sẽ tiếp tục hỗ trợ một lúc, Tốt hơn là di chuyển ứng dụng của chúng tôi trong GCM và xuất bản phiên bản cập nhật của ứng dụng của chúng tôi. (Theo suy nghĩ của tôi)

+0

Đó chính xác là những gì được đề xuất trong hướng dẫn di chuyển. Đầu tiên nhìn vào hướng dẫn di chuyển trông giống như nó sẽ dễ dàng di chuyển cho nhiều ứng dụng. –

+0

Ok, nhưng bạn sẽ xử lý chuyển đổi như thế nào? –

3

Tôi đã di chuyển ứng dụng của mình từ C2DM sang GCM. Không, tôi không nên nói di cư. Thuật ngữ chính xác là 'cùng tồn tại' cho cả C2DM và GCM. Bởi vì tôi không thể buộc tất cả người dùng hiện tại của tôi nâng cấp lên GCM. Mục tiêu của tôi là đảm bảo cả người dùng mới (tham khảo GCM) và tồn tại (tham khảo C2DM) đều có thể nhận tin nhắn push.

Đối với các mặt hàng:

  1. Thay đổi người gửi để dự id

Đối với phía máy chủ:

  1. Thêm một cột mới trong db để lưu trữ GCM đăng ký id.
  2. Nếu người dùng kỷ lục với id gcm đăng ký> sau đó đẩy lên máy chủ gcm> khác máy chủ C2DM

Cho đến nay tôi có thể đạt được sự phản đối của tôi. Nhưng mối quan tâm duy nhất của tôi là, khi c2dm sẽ tắt hoàn toàn?Nếu ngày thực sự đến, làm thế nào tôi giả sử để buộc người dùng cũ của tôi nâng cấp lên gcm?

+0

Tôi đồng ý với 'đồng tồn tại ', nhưng không phải là giải pháp sạch: -/Tôi có trong tác nhân người dùng một cách để biết phiên bản ứng dụng nào người dùng đang sử dụng và tôi có thể nâng cấp khi khởi chạy nhưng có vẻ hơi tàn bạo (và do đó sẽ làm mất người dùng), đó là lý do tại sao tôi muốn tránh nó. –