我的客户经常从电报服务器收到以下消息容器,似乎是随机的:
{'MessageContainer': [{'msg': {u'bad_msg_notification': {u'bad_msg_seqno': 4, u'bad_msg_id': 6330589643093583872L, u'error_code': 35}}, 'seqno': 4, 'msg_id': 6330589645303624705L}, {'msg': {u'msgs_ack': {u'msg_ids': [6330589643093583872L]}}, 'seqno': 4, 'msg_id': 6330589645303639041L}]})
您可能会注意到:'错误代码':35 ,但没有说明该错误代码的含义。到目前为止,我一直忽视它,但这不是一个好的长期解决方案恕我直言。任何想法错误代码意味着什么?
答案 0 :(得分:2)
与 bad_msg_seqno
相关的一组错误来自文档:
此处,error_code还可以采用以下值:
- msg_seqno太低(服务器 已经收到一条消息,其msg_id较低,但有一个 更高或相等和奇数seqno)
- msg_seqno太高(同样, 有一个消息具有更高的msg_id,但有一个更低或 一个相等和奇数的seqno)
- 一个偶然的msg_seqno预期(无关紧要 消息),但奇怪的收到
- 奇数msg_seqno预期(相关 消息),但即使收到
醇>
正式定义: Message Sequence Number (msg_seqno)
32位数字,等于“内容相关”数字的两倍 消息(需要确认的消息,特别是那些消息 在此消息之前由发件人创建的不是容器 如果当前消息是a,则随后递增1 与内容相关的消息。始终在其后生成容器 全部内容;因此,它的序列号大于或 等于其中包含的消息的序列号。
备注:强>
server_seq_no
回复您,该server_seq_no
应该比您的 正确 max seq_no更大1。current-expected
(应该始终是偶数)来确认您的sed -i '$ s/,/;/g' abc.java
seq_no应该是什么,并根据需要进行调整。上述技术对我来说完全避免了这些间歇性的错误信息。
答案 1 :(得分:1)
正如Telegram API docs所说,代码35的错误是"奇数msg_seqno预期(相关消息),但即使收到"