[Problem/Question]
v3(3.1.22)에서 v4(4.6.2)로 마이그레이션 후, push가 동작하지 않습니다.
[Reproduction Steps]
테스트는 각각 다른 userId로 안드로이드와 iOS 기기에서 하나의 그룹챗 방을 만들어서 했는데, 서로의 메시지에 대한 push가 도착하지 않습니다.(multi device 등 모두 켜 있습니다.)
(그러나, v3 기반의 app에서는 둘 다, 서로 push가 잘 왔다 갔다 합니다.)
그래서 dashboard의 test push로 테스트 해 보았는데, 특이점이 있었습니다.
android/iOS 모두, token이 기기에서 등록할 때 보낸 token과 다른 token이 보이며,
test push를 보내면, test push popup에 둘다 실패가 뜹니다.
그러나, android는 test message를 받고, iOS는 받지 못합니다.
그래서, test push를 보내기 전에, token을 기기에서 등록할 때 보낸 token을 리스트에서 찾아서 설정한 다음 보내면,
android는 test push popup에 여전히 실패가 뜨지만, iOS는 성공합니다.
그리고 push message는 android/iOS 둘 다 받습니다.
(그리고 해당 test push를 누르면, 채팅창으로 잘 이동해서 보여집니다.)
[Frequency]
위의 경우는 현재 항상 발생하고 있습니다.
[Current implementation]
V4 구현에 대한 요약은 아래와 같습니다.
- 그룹 채널만 사용
- localcache 사용 (AsyncStorage)
- 채널리스트 - GroupChannelCollection
- 메시지 - MessageCollection
- push options - 기본으로 MENTION_ONLY 사용(connect → set push option → register push token)
- 채팅 방 별 관리
- 채팅방에 들어오면, 해당 채널에 대해서 OFF로 했다가, 나갈 때, 다시 'MENTION_ONLY’로 회복
- 채팅방에 들어와 있는 상태에서, background/inactive가 되면, MENTION_ONLY로 바꿨다가, 다시 active가 되면, OFF로 복귀
- push option에 대한 것은 각 단계 별로, 리턴 값을 확인해서 정상적으로 바뀌는 것을 확인했음
- 채팅 방 별 관리
기본적으로, uikit의 소스코드를 참조해서 재구성하였습니다.