当我多次进入聊天室时,让服务器不给我发送相同的消息?
Posted
技术标签:
【中文标题】当我多次进入聊天室时,让服务器不给我发送相同的消息?【英文标题】:Make the server not send me same messages when i enter a chat room many times? 【发布时间】:2014-02-21 07:28:34 【问题描述】:如果我进入聊天室,我会收到一些消息。然后我退出我的帐户。当然,我也会退出聊天室。但是我下次进入同一个聊天室,我会收到相同的消息还有。我的意思是,当我多次进入聊天室时,服务器不应该向我发送相同的消息,服务器应该向我发送我从未收到过的消息。我该怎么办?? ejabberd.cfg 中有一个选项,"history_size",但是不符合我的需求。
【问题讨论】:
【参考方案1】:Section 7.2.15 of XEP-0045 指定如何要求限制进入房间时收到的消息历史记录数量。重新进入房间时,您的客户可能会记下它收到的最后一条消息的时间戳,并要求仅在该时间之后获取消息:
<presence
from='hag66@shakespeare.lit/pda'
id='n13mt3l'
to='coven@chat.shakespeare.lit/thirdwitch'>
<x xmlns='http://jabber.org/protocol/muc'>
<history since='1970-01-01T00:00:00Z'/>
</x>
</presence>
【讨论】:
这似乎是个好主意,但客户端和服务器上的时间可能不同。客户端可以获取上次从服务器注销的时间吗?如果是这样,解决方案非常好。以上是关于当我多次进入聊天室时,让服务器不给我发送相同的消息?的主要内容,如果未能解决你的问题,请参考以下文章
为啥在使用 XMPP 时多次发送聊天时会出现“服务不可用”?