(以内容“== 设计问题 == === 消息通知 === 之前#的消息系统: * 每个用户一个消息箱 * 消息箱自带未读计数 * 消息靠SIGUSR2通知 * 接收方有...”创建新页面)
 
 
第35行: 第35行:
 
** 对于消息目标登录,发送多个通知
 
** 对于消息目标登录,发送多个通知
 
** 对于其他登录,发送1个通知
 
** 对于其他登录,发送1个通知
 +
** 其实我不知道这是第几个通知…… 目前是如果已经在消息状态了那就不是第一条,否则是第一条……

2012年2月22日 (三) 06:53的最新版本

设计问题

消息通知

之前#的消息系统:

  • 每个用户一个消息箱
  • 消息箱自带未读计数
  • 消息靠SIGUSR2通知
  • 接收方有通知计数
  • 每个计数需要一次回车
  • 只能给特定登录发送消息
  • 消息内有目标登录
    • 查看消息时,略过目标不是本登录的消息

对于XMPP,无法确定应发给哪个登录

  • 通知所有登录

消息发送过程:

  • 查看是否能发
  • 投递消息
  • 通知新消息

故,XMPP情况下:

  • 有一个登录能发,则认为能发
  • 投递消息和登录无关,这个和原来一样
  • 通知所有登录有新消息

但是,通知方面:

  • 如果每条消息需要一次回车,则在有XMPP情况下,普通登录均为无用回车

所以修改:

  • 若有消息未处理则不通知

导致问题:

  • 若只有普通登录无XMPP登录,则只通知一次导致接收方只能弹出一条消息

修改:

  • 若只有普通登录,则
    • 对于消息目标登录,发送多个通知
    • 对于其他登录,发送1个通知
    • 其实我不知道这是第几个通知…… 目前是如果已经在消息状态了那就不是第一条,否则是第一条……