Cześć, spróbuję opisać problem krótko i zwięźle.
Piszę małą grę na iOS, która wykorzystuje iCloud do synchronizacji stanu gracza (np. jego życia).
Rozważmy pewną sytuację:
- Jedna osoba ma dwa urządzenia z tym samym kontem iCloud, iPhone + iPod lub iPad, dowolnie.
- Jedna osoba gra na iPhone a druga na iPod, na tym samym koncie, w tą samą grę.
- Podczas włączenia gier na urządzeniach synchronizują się oba urządzenia i ilość żyć na urządzeniach jest ta sama.
Aplikacja umożliwia kupowanie różnego contentu do gry itp., użytkownik może więc dokupić życia. Tak więc:
- jedna osoba wchodzi w menu 'store', kupuje paczkę żyć, aplikacja wysyła dane z nową ilością żyć do iCloud.
- sekundę później użytkownik na drugim urządzeniu przegrywa i traci jedno życie. To powoduje również wysłanie informacji do iCloud.
Jak wiadomo wysłanie i pobranie danych z iCloud może potrwać chwilę, jakieś 10-15 sekund więc teoretycznie na serwer powinny trafić obie notyfikacje i jedno urządzenie powinno odebrać notyfikację o kupnie żyć a drugie o stracie jednego życia.
Niestety dzieje się tak, że notyfikacja przychodzi tylko z ostatniego powiadomienia (sprawdziłem i jedna notyfikacja jest dostarczana wtedy gdy zmienia się wartość dla jednego klucza, czyli np. tylko życia. Jeśli na jednym urządzeniu zmieni się liczba żyć, a na drugim coś innego, to oba urządzenia dostają odpowiednie notyfikacje). Tak jakby inne powiadomienia ginęły gdzieś tam i gracz na jednym z urządzeń nie wie, że zostały kupione życia bo zwyczajnie to powiadomienie nie dociera lub zwyczajnie zostało nadpisane.
Czy jest to normalne zachowanie iCloud?
Brak jednej notyfikacji w iCloud
Rozpoczęty przez
tmkszlc
, 09 cze 2013 09:17
Brak odpowiedzi do tego tematu
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych