本帖最后由 VisualEleven 于 2011-07-19 16:23:05 编辑

解决方案 »

  1.   

    这个我想不到,你问这个问题,让我觉得应该让用户直接发给用户可能更大
    以下是我个人猜想:
    用户登录后,服务器返回各个群每个在线用户的IP并保存起来,然后每当有用户上线的更新一次数据
    当有用户在群里发消息的时候,查本地保存的相关的群用户IP,并向他们发出消息,对不在线的则存在服务器用户信息中,当用户上线的时候就查询未读消息这样不知道我说的清不清楚,大概就是这样,应该能大大减轻服务器负担
      

  2.   

    上面的想法是我从彩虹QQ那想到的,彩虹QQ与其它用户聊天就能知道好友的IP,我想应该是直接发到目标IP去的,对于不在线的用户则存在服务器中,等下次上线读取
      

  3.   

    现在开发的项目是基于XMPP协议的,信息传送方式采用的是服务器转发,所以寻求一种方式来避免群聊可能带来的延迟问题
      

  4.   

    敢问有没有朋友知道XMPP协议 下能否支持群聊这个操作?
      

  5.   

    对于XMPP这个协议 对于新手该怎么接受呢? 只是看着标准解释有点太抽象了~~  谁来把它形象化描述一下 哎~ 看了一天 还是朦朦胧胧
      

  6.   

    应该是P2P聊天,提供几个函数,你可以去找找资料(貌似很不好找)
    PeerGraphStartup
    PeerIdentityCreate
    PeerCreateName
    PeerGraphCreate
    等等
      

  7.   

    给你一个QQ的源码吧
    SVN的连接。 需要安装Dev-Cpp
    http://myqq3.googlecode.com/svn/trunk读一下里面群消息相关的代码,我看的是直接发到服务器上了
      

  8.   

     1.3亿在线。TCP协议每个服务器承受10W的话,你算算要多少服务器
    光QQ聊天起码130000000/100000=1300台
    保守QQ服务器起码万台左右我QQ一上午消耗流量10M
    1.3亿要13亿M130万G流量一上午。。要多少服务器来承受呢?一小时20万G流量啊。百兆的话满负荷一小时几十G也差不多了。这么算也有上万台了
      

  9.   

    一上午10m 出去图片呢? 图片他不保存吧tx最少有好几万台服务器吧,而且应该都是顶级配置的
      

  10.   

    qq没上万台还玩屁,google百万台
      

  11.   

    通过服务器转发的应该
    试过把QQ的服务器IP都找出来,基本上都是一整个IP段的
    而且添加速度很快,基本上1个礼拜就会多出几个IP
      

  12.   

    点击qq群,qq群服务器发送此群所有人ip给你你在把信息发送出去。
    这样子也有可能啊,减轻qq服务器的负担。这中群聊各种可能。
      

  13.   

    这貌似又进入那个问题了,sp曾经说过的,QQ你给别人发消息也是经过QQ服务器的,这么多用户肯定是多线程,一个用户一个线程的话,曾经QQ同时在线1亿人,每个人发一条消息的话,岂不是要用1亿个线程?服务器肯定受不了,是吧?事实上是,人家可能用了不到1万个或者更少个线程所以,即使有千万个群,服务器是可以处理的
      

  14.   

    我觉得这属于“应用层组播”,具体我也不太懂,你可以找相关的技术资料研究一下,不过挺复杂的。
    Internet上组播本来就挺复杂的,协议和算法重多,但没有完美的。
      

  15.   

    现在开发的项目是基于XMPP协议的,信息传送方式采用的是服务器转发,所以寻求一种方式来避免群聊可能带来的延迟问题
      

  16.   

    现在开发的项目是基于XMPP协议的,信息传送方式采用的是服务器转发,所以寻求一种方式来避免群聊可能带来的延迟问题
      

  17.   

    Using network monitor tool to monitor the network data of QQ message.You will find the answer.
      

  18.   

    sdadas
      

  19.   

    应该是服务器转发的,你想想看,对方下线后你给TA发了一条信息留言,TA再上线能看到。
    是不是这样的?我不知道啊,纯讨论