拿实际数据测试情况如下
1、服务器使用QQServer.SendNotice("宋江","上午9点集合,地点人民广场!")
那么这个消息在发送完以后,当宋江不在线时,会存放在服务器的消息mdb中,而且会在宋江登录上线以后,会出现在宋江的消息mdb中,但不会出现在内部表的消息表中;然后这条消息在服务器的消息mdb中会自动清除
2、服务器使用QQServer.Send("宋江","上午9点集合,地点人民广场!",true)
那么这个消息在发送完以后,当宋江不在线时,不知道会存放在哪里
在宋江登录上线以后,不会出现在宋江的消息mdb中,但会出现在内部表的消息表中
服务器使用SendNotice和Send发送消息,客户端存放的地址正好相反。前者存在用户.mdb中,后者存在内部表中
问题是:信息内部表是所有用户共用的,例如张三和李四共用一台电脑,但使用不同账户登录时,内部“信息”表无法区分消息是发给谁的
如果用户不使用内部聊天窗口,就找不到历史消息记录了
2、客户端的账号“吴用”使用QQClient.Send("宋江","吴用给宋江的信息1",true)
这时候,不论在服务端.mdb,还是吴用.mdb,还是宋江mdb,还是客户端的内部“信息”表都看不到这条信息
当宋江再登录的时候,这条消息也接收不到。
3、客户端的账号“吴用”使用QQClient.Send("吴用给服务器的信息1")
这时候,不论在服务端.mdb,还是吴用.mdb,还是客户端的内部“信息”表都看不到这条信息
这是不是有问题啊?
(1)服务器使用send发送的消息,只能存放在客户端的“信息”内部表中,而且无法识别服务器发给谁的。在接收者.mdb中看不到记录
(2)客户端使用send发给服务器或者其它用户的信息,不论在客户端的“信息”内部表、还是服务器.mdb、接收者.mdb、发送者.mdb中都找不到
(3)只有服务端使用sendnotice发给用户的消息,才能在接收者.mdb中看得到
也就是说,不用部门.用户,用户间互相发消息都用不了