日期:2014-05-18  浏览次数:20755 次

请各位有大虾来帮我解答写这样一个问题(QQ,即时通讯类)谢谢
近日,我的一个QQ上的好友A向我反映说,当我和他在进行QQ聊天时,他另一个QQ上的好友B可以在登录B他自己账号的状态下收到我和A的聊天信息的信息提醒,(他收到的提醒和我俩的聊天是即时同步的,不存在延后) 我的疑问是,在QQ这种软件的技术层面上,这种情况有可能发生么? 谢谢了

大致的逻辑关系如下


我-------》A《--------B

我和B与A的好友关系都是单向的,我与B并无任何联系,既不是好友,也从未在QQ上有过接触 
但B却能看到我和A的即时通信,而且据B说,他的QQ不仅可以接收到我和A的即时通信提醒,B的其他好友在与他人有即时通信时,他也可以收到信息提醒并查看内容,但无法回复或编辑消息

可能我讲的有些乱,但还是希望有人能回答我的问题,真的是很不解。

------解决方案--------------------
QQ 这个是QQ 的一个推送方式 ,但是不存在 A to B 的时候 数据 会被C 收到,只是QQ 可以在不同的终端上登录(多地登录)模式,手机QQ有个消息推送的模式,只要这个账户在手机端不取消推送,会一直收到消息盒子,但是这个消息只有 A 发出的消息 没有B的。
------解决方案--------------------
你发送消息给A,假设需要提醒B,QQ客户端自然可以同时发送给B一个提醒。

说“腾讯服务器可以转发”也是合理的。不然你在局域网,A在局域网,如果连腾讯的服务器都不知道那么你们之间怎么发送消息呢?

所以只要QQ程序逻辑处理上正确,那么发送你给你消息时同时给别人一个消息,不管是否经过服务器,这都可以成立。
------解决方案--------------------
群发功能很简单,不要以为一定要通过接收者一个一个接力去发。

至于说A和B有没有在腾讯系统上的特殊关系,我就不清楚了。我平常不使用QQ。

但是策略是一种动态的东西,好比如说我们在自己的电脑上设置一个关于用户组的策略,然后策略就发送给所有用户了,于是每一个用户(即使单机时)其客户端就遵循新的策略工作了。

这是谁会化的网络程序的一种很基本的设计。如果你只是做过用个sql server的客户端去访问数据库服务器这类所谓的“c/s程序”可能难以理解。但是如果你真正做网络程序,这种基本的设计一定会接触到,而且是一个核心的东西。客户端程序不可能都是一个“死的”程序,什么事情都去数据库查询。客户端一定是一个分布式的独立系统,保存一定的本地策略配置信息。
------解决方案--------------------
这是谁会化的网络程序的一种很基本的 --> 这是社会化的网络程序的一种很基本的

我经常可以把“只会关系数据库编程的程序员”跟真正做网络软件的程序员区分开来。因为相对于现在的需求,会设计开发社会化网络的人才是真正需要的技术人员。
------解决方案--------------------
如果是符合腾讯的逻辑的,那么跟你就没有关系。

比如你去访问视频网站,视频网站给你下载的网页还要向其它第三方统计机构发送一些信息,你跟这些第三方统计机构有什么交集?

这是人家程序策略设计。通过客户端发送,省得通过服务器发送,也没有半点问题。更何况通过服务器发送,你就更无法控制了。你只能说这公司的产品的设计理念你不认同,你可以从此不再用这个产品。