我在我的Android应用程序中成功实现了FCM,但是控制消息传递到设备所需的时间有些困难,并且受到许多因素的影响(包括FCM本身、覆盖范围、wifi/3g心跳、优先级、睡眠状态、空闲等等)。
显然,即时推送非常好,但是对于同一版本的应用程序,在完全相同的位置上放置相同的设备一段时间后,存在相当大的差异(有时我移动它,消息就会突然传递)。 FCM诊断非常有用,以下是一些示例;
MESSAGE 0:1485... PERFECT (BURGLAR APPREHENDED)
任何建议都将不胜感激。
显然,即时推送非常好,但是对于同一版本的应用程序,在完全相同的位置上放置相同的设备一段时间后,存在相当大的差异(有时我移动它,消息就会突然传递)。 FCM诊断非常有用,以下是一些示例;
MESSAGE 0:1485... PERFECT (BURGLAR APPREHENDED)
Current Status Acknowledged
Collapse Key n/a
TTL 2,419,200
TIME CURRENT STATUS
Jan 31, 5:33 PM Device connected
Feb 1, 4:44 PM Accepted
Feb 1, 4:44 PM Delivered
Feb 1, 4:45 PM Acknowledged
消息 0:14860...有点慢(小偷拿走了电视)
Current Status Acknowledged
Collapse Key n/a
TTL 2,419,200
TIME CURRENT STATUS
Feb 3, 11:04 AM Device connected
Feb 3, 11:30 AM Accepted
Feb 3, 11:30 AM Delivered
Feb 3, 11:42 AM Acknowledged
消息 0:1485... 延迟 (入室盗窃者带走了保时捷和电视)
Current Status Acknowledged
Collapse Key n/a
TTL 2,419,200
TIME CURRENT STATUS
Jan 25, 9:42 PM Device connected
Jan 26, 3:57 AM Accepted
Jan 26, 3:57 AM Delivered
Jan 26, 3:58 AM Device disconnected
Jan 26, 4:15 AM Device connected
Jan 26, 4:15 AM Sent on reconnect
Jan 26, 4:15 AM Acknowledged
我能看到发生了什么,但是我并没有很好地确定原因。大多数时候它都很出色(已经有几个月了),但第二天就不行了。
我的具体问题:是否有更深入的访问FCM事务状态的方法..?
我特别想知道我的“priority”参数是否真正传递并被FCM处理。下面是发送到FCM的典型json片段。
{"priority":"high","to":"dI3au0W8te...N7F","data":{"msgsndr":"ADMIN","msgtext":"URGENT: UNAUTHORISED ENTRY IN PROGRESS"}}
任何建议都将不胜感激。