设计问题
消息通知
之前#的消息系统:
- 每个用户一个消息箱
- 消息箱自带未读计数
- 消息靠SIGUSR2通知
- 接收方有通知计数
- 每个计数需要一次回车
- 只能给特定登录发送消息
- 消息内有目标登录
- 查看消息时,略过目标不是本登录的消息
对于XMPP,无法确定应发给哪个登录
- 通知所有登录
消息发送过程:
- 查看是否能发
- 投递消息
- 通知新消息
故,XMPP情况下:
- 有一个登录能发,则认为能发
- 投递消息和登录无关,这个和原来一样
- 通知所有登录有新消息
但是,通知方面:
- 如果每条消息需要一次回车,则在有XMPP情况下,普通登录均为无用回车
所以修改:
- 若有消息未处理则不通知
导致问题:
- 若只有普通登录无XMPP登录,则只通知一次导致接收方只能弹出一条消息
修改:
- 若只有普通登录,则
- 对于消息目标登录,发送多个通知
- 对于其他登录,发送1个通知