2013-02-27 35 views
8

Tôi có một ứng dụng dựa trên Google Cloud Messaging và ứng dụng này hoạt động tốt. Bây giờ (hôm nay) tất cả của một đột ngột nó bắt đầu có một vấn đề chúng tôi chưa bao giờ thấy trước đây. Đối với mỗi tin nhắn được gửi giữa các thiết bị, thiết bị nhận sẽ nhận được hai lần. Việc đầu tiên sẽ đến gần như ngay lập tức (trong vòng chưa đầy 3 giây gửi). Thứ hai đến sau vài phút. Có hai thiết bị trong thử nghiệm, vấn đề là giống nhau bất kỳ thiết bị nào là người gửi/người nhận. Vì vậy, nếu một thiết bị gửi một vài tin nhắn cho người kia, người kia sẽ nhận được nhiều tin nhắn ngay lập tức - nhưng sau đó vào một thời gian sau, nó sẽ nhận được một loạt các tin nhắn là bản sao thứ hai của các tin nhắn mà họ đã nhận được.Tin nhắn được sao chép GCM

Tôi đã đặt vào điểm ngắt để đảm bảo rằng thiết bị gửi không phải là thủ phạm: thông báo được gửi chính xác một lần (nghĩa là dịch vụ web để gửi được gọi chính xác một lần - và mã cho chương trình phụ trợ trên Google App Engine, đã không thay đổi theo độ tuổi.) Tuy nhiên, thông báo bằng cách nào đó được gửi tới thiết bị nhận hai lần. Bằng cách sử dụng điểm ngắt, tôi cũng đảm bảo mã của chúng tôi ở bên nhận không chịu trách nhiệm: nó được xác minh rằng GCMIntentService::onMessage() thực sự được gọi hai lần cho mỗi thư đã gửi.

Chúng tôi cũng đảm bảo rằng id đăng ký trong cơ sở dữ liệu của chúng tôi là mới nhất. Tại thời điểm này tôi stumped và cần ý tưởng để thực hiện bất kỳ tiến bộ hơn nữa. Vì vậy, bất kỳ ý tưởng?

+0

Tôi không thể xác nhận điều này là người dùng. Từ khoảng 7 giờ, tôi nhận được mọi tin nhắn hai lần. Từ Facebook, Gmail, v.v. Rất bực bội ... Tôi nghi ngờ có vấn đề với gcm – aeno

+0

Aeno: cảm ơn bạn đã xác nhận. Bạn vui lòng chỉnh sửa bài đăng của mình để nói "có thể xác nhận" thay vì "không thể" - đó là ý của bạn. Bất kỳ ai từ nhóm Google Android xem không gian này? Có bất kỳ từ chính thức nào về điều này không? – user2113392

+1

Tương tự ở đây. Ứng dụng vẫn đang phát triển của chúng tôi nhận được thông báo trùng lặp kể từ hôm qua. – swehrli

Trả lời

0

Chúng tôi cũng có cùng một vấn đề và chúng tôi chắc chắn chúng tôi không gửi thư hai lần. Nó có thể là một vấn đề liên quan đến những gì đang giải thích ở đây về "Canonical ID": http://developer.android.com/google/gcm/adv.html

[...] Tuy nhiên, nếu một lỗi trong ứng dụng gây nên nhiều đăng ký cho cùng một thiết bị, nó có thể được khó hòa giải nhà nước và bạn có thể kết thúc với thư trùng lặp.

0

Cùng một vấn đề ở đây. Chúng tôi có nhiều ứng dụng được tích hợp với MyMalcom và Urban Airship và tất cả chúng đều được đẩy hai lần kể từ thứ Hai. Chúng tôi cũng đã kiểm tra các thay đổi canonicalId như được đề xuất bởi Ferran, nhưng các tin nhắn được gửi tới GCM là ok (không có thay đổi Id pháo).

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