-
创建时间
19年9月20日
-
最后回复
19年9月25日
- 10
回复
- 517
浏览
- 3
用户
- 1
赞
确认了一圈,我们的 _messageReceived hook 参数里是不会将用户上传的 push data 参数发送过去的。从您打印的日志里也可以看到,request param 里并没有 push data。push data 字样是另起一行打印,也即您 hook 实现中自行拼接的。
_messageReceived Hook 我们会传递的参数说明在这里:https://leancloud.cn/docs/realtime-guide-systemconv.html#hash-1573260517
另外补充一下,这条消息 ldA519UJHQwX29U9cjLfGz 您在调用 REST API 时带着 transient 参数为 true,所以是暂态消息,只会下发消息而不会存入历史消息记录,所以您在控制台也无法找到这条消息。在您截图的 request.param 日志能看到,transient 是 true。
再补充一下,transient 为 true 的消息我们是不会触发离线消息推送的。也印证了我上面提到的,我们日志里已经很久没有看到您应用因即时通讯离线消息触发的推送了。
很奇怪
1. 我们没有实现那个 Hook,我甚至是第一次知道有 Hook 这么个东西。
2. 我们确实同时使用了 即时通讯的 API 和 推送的 API,分别是 1.1/rtm/messages 和 1.1/push ,但我确定异常的推送只有在调用即时通讯API 时发生。也就是我们调用了即时通讯API,结果 LeanCloud 自动发了一条异常 Push,内容和即时通讯API 的消息内容一模一样。
3. 推送的API,我们在调用时,代码中传递的参数都是文本字符串(与即时通讯的消息内容不同),不是 json 字符串,而异常推送的内容都是 json 字符串。
比如,A 跟 B 发送聊天消息 “您的房源还在出租吗?”,我们调用即时通讯 REST API,发送了一个 JSON 对象。而调用推送 REST API 发送的是 “您有一条来自A的新消息”,不是 JSON 格式的。
所以我不觉得,这是由于我们自己调用推送的API,而导致的异常推送。
而且从现象看,就是由于即时通讯 API 引起的 LeanCloud 自动触发的异常推送,甚至还是全局推送,推送到多个用户。




