因为实在不清楚QQ的系统消息是怎么样实现的,所以想来咨询一下!如果是通过广播形式的话,那怎么才能使广播实现跨网段传输呢?如果是通过自定义的消息形式的话,那服务端怎么才能完成向海量客户端发送消息的庞大工作量呢?实在不清楚..所以想问下各位对于这个问题的看法。

解决方案 »

  1.   

    >>如果是通过广播形式的话,那怎么才能使广播实现跨网段传输呢?如果是通过广播形式的话,那怎么才能使广播实现跨网段传输呢?QQ能连接到服务器,能接到其他好友的消息,就能收到消息阿,格式区别而已
      

  2.   

    ipv4是不支持广域网 广播的 
    所以 QQ消息 不是以广播传输的 
    应该是多点传送的,当有用户上线的时候 就主动给用户发条信息 就可以了
     如果用户再线 可以给他直接发送一条信息  
      

  3.   

    aiirii(ari-爱的眼睛) :
       如果是照你所说的这样,给每个QQ在线用户发消息过去(假设由同一个服务端发送),那QQ在线用户同时在线用户基数都有几十万左右。这样设计服务端可行吗?   如果眼睛兄你现在项目中要求实现类似qq系统消息的功能,你会怎么设计?客户端数为1000,需考虑数据的并发处理~~~!
      

  4.   

    bbcharm(碧海情天) 
       这么一说就明白多了,第一个假设就不存在了~!能说下多点传输的思路吗?
      

  5.   

    我始終覺得, QQ廣告部分, 占QQ總通信量的比例極少, 而且, 大多是login 的時候收到, 再說, 就算有几十萬用戶, 也不用同一時間同時發送, 可分段的, 用多播發送, 我想應該很快!
      

  6.   

    aiirii(ari-爱的眼睛) :
       大概明白了~~能再次麻烦你提供点这方面的详细资料吗?先谢谢了...
      

  7.   

    这个都是线程池处理的 
    如果tcp用IOCP来处理
    多看看网络方面知识吧 
    还有p2p 其实多点传送 也是 每一个用户单独发送 都是顺序的 不可能达到同时