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

请问QQ的消息接收是怎么实现的?
是在聊天窗口接收还是在主面板中接收的呢?如果是在主面板中接收,那么又是怎么在聊天窗口中及时更新聊天信息的呢?
提前祝大家节日快乐,不管有没有满意答案,周一都结帖

------解决方案--------------------
先占沙发
------解决方案--------------------

但愿不是无满意答案结贴



------解决方案--------------------
请问QQ的消息接收是怎么实现的?
-------------------------------
QQ应该是在好友主列表对消息进行接收,然后在通过主窗体去改变子窗体(聊天窗体)中的内容,以实现信息的即时收取
同样的道理在发送信息是也应该是通过父窗口进行发送.

个人观点,如有雷同,实属巧合.
------解决方案--------------------
up~
Everybody ! happy for our festival !

------解决方案--------------------
有个MsgOleInRich.dll
估计是在窗口中接收的吧
------解决方案--------------------
应该是QQMsgRecver.dll和QQMsgFriendMng.dll这两个……
这么看好像又是在主面板中接收的了……
------解决方案--------------------
值项
------解决方案--------------------
和在那个窗口没关系. 
如果我是qq的开发人员. 会有一个负责所有和服务器通讯的进程. 
这个进程根据消息操纵其他进程. 

------解决方案--------------------
接分

谢谢
------解决方案--------------------
学习中。。。。
------解决方案--------------------
我也想知道
------解决方案--------------------
我觉得在主程序和窗口可能都有,我写过一个简单的即时聊天程序,一般和某个好友建立聊天以后,都直接使用p2p方式发送消息,
当对方没有返回接收确认的时候,就暂存到服务器。
所以我认为,当好友在线(无论隐身与否)都是听过窗口来接收的,当有一方不在线,或者掉线的时候会通过服务器转发,
这个时候很可能是通过主程序接收,然后在窗口显示的。

呵呵,纯属个人猜测!
------解决方案--------------------
个人认为应该是两部分接收工作,或者是一个接收工作通过两部分来实现
首先是否有消息的通知应该在主窗口或者是通过主窗口加载的其他组件进行接收,之后子窗口会接收具体的消息
另外一种就是主窗口接收了全部消息,并将消息保存到一个什么地方(临时文件或者内存中的某个地方),并通知子窗口有消息了,之后子窗口会从相关的地方读出具体的消息。
------解决方案--------------------
虽然不是很懂~学习先
------解决方案--------------------
个人认为应该是在主面板中接收,如果在聊天窗口接收的话,一个聊天窗口就需要一个socket,太消耗资源了。

应该是主面板中接收,再根据消息内容决定更新哪个聊天窗口中的内容。
------解决方案--------------------
学习`
谢谢`
------解决方案--------------------
估计和socket有关,没做过 猜测
------解决方案--------------------
主窗口,如果增加了视频/语音的话,子窗口!
------解决方案--------------------
不太明白...
------解决方案--------------------
我也觉得是在主窗口
------解决方案--------------------
以前看过一个类此的源代码,是在主窗体接受,然后传递给子窗体的,这样其实别叫容易控制!楼主可以搜索以下类似的源码!
------解决方案--------------------
找个腾迅的人问问撒

------解决方案--------------------
学习下
------解决方案--------------------
接收消息 ,然后写入文件,聊天窗口去取文件
你没发现吗,QQ每次只要你登录了,然后结束掉,不看消息,下次登录时就不会闪了
------解决方案--------------------
楼上的说的有点玄乎。跟真的一样。呵呵
------解决方案--------------------