如题!

解决方案 »

  1.   

    好像目前VC++写好,是吗?C#差在哪?
      

  2.   

    直接用Socket写的IM无限灵活扩展,你想用结构被限制死的服务器端来写webIM,弄来弄去都是在人家的特定有限的框架下写简单重复的API
      

  3.   

    应用的层次不同。webim的开发还是着重于客户端,对于协议的深入了解,没有什么好处,只能说是二次开发或者再次开发。无论已经公开的im协议的api如何设计的好,对于使用这些api的人来说,仅仅是实现应用。如果关注点在应用,和整合,那就搞webim。im的开发,则偏重服务端,不仅有利于对协议的了解,封装,以及已经公开实现的协议的了解也会更深入。而且对服务端负载平衡,failover,分布式,甚至是所谓的云的架构也会更清晰。关注im的系统架构,还是不能仅仅用api了事。在学习成熟协议的基础上,理解,完善,甚至自定义协议,都和webim不在一个层次上。我的理解就是这样
      

  4.   

    webim相当于Webgame的开发层次,属于纯给定框架里的有限范围应用,开发所受限制太大,商业拓展空间也随之变得十分有限。与使用全Socket支撑的3D的休闲网游如《劲舞团》等、MMORPG如《WOW》等类网游有本质上的区别。
      

  5.   

    顶,我想知道Socket开发IM(c/s)用哪种语言好呢,我想开发一个类似qq那样的软件,因为我是针对小众群体,所以最高同时在线客户也就几千多说了,说白了就是一个小负载的qq,请教各位朋友,开发思路!!!!
      

  6.   

    采用的是server push技术。 
    客户端嵌入一个iframe,iframe连接一台即时消息主机,这个iframe连接是一个http长连接,当用户有即时消息时,服务器象客户端传输一组 <script> 标签,由此客户端得到响应。客户端用脚本检测这个iframe当载入完成时重新刷新页面,再次开启这个http长连接。 
      

  7.   

    IM通常使用Tcp/Udp,并且都实现了防火墙穿透)和基于Udp的NAT穿透的P2P技术
    类似QQ的使用socket机制看看myqq
    powertalkbox
      

  8.   

    使用客户端程序当然是比较灵活,功能也强大的多,看看qq,msn就知道了,webim一般使用两种技术,一是客户端定时刷,服务器压力较大,另一个就是,使用基于http长链接的“服务器推”技术,可以看http://www.ibm.com/developerworks/cn/web/wa-lo-comet/index.html,这个效率应该还可以,网页版的gtalk就是采用该技术。
      

  9.   

    keep-alive是一个保持长连接的标准request header,但是未必每个server都开放这个功能。
    如果server支持,那么对keep-alive的响应,超时时间必须很短,如果超时时间很长,大量的恶意长连接请求会导致server down掉。gtalk使用的iframe模式或者httpfile模式,本质应该还是一种keep-alive方式。还有一种stream模式
    IE因为不支持readystate=3时读取数据,也就是在数据没有传输完毕时,不能读取流,所以这个在ie客户端实现没意义。firefox倒是支持。webim,只能作为亚应答规模下的一种服务提供给客户。实时性要求高的im客户端还是传统IM为王