我做了一个网页版的聊天工具.功能全部都是模仿腾讯QQ做的。现在遇到这样一个问题:别人发信息过来的时候头像会跳动,该分组会闪动。该怎么做到呢?还有声音提示的,就跟腾讯一模一样就好了! 这些功能应该都不难吧。不过对于我这个菜鸟来说还是没有什么思路的。求高手解答!我的面板都是用CSS+DIV弄的。C#.NET 大虾们别扯远了!

解决方案 »

  1.   


    AJAX聊天试网上很多例子可以借鉴了。。LZ找找看看用AJAX后台做个定时取消息
      

  2.   

    用AJAX后台做个定时取消息
    头像闪动什么的jQuery控制就好了。。
      

  3.   

    我也只知道ajax轮询    据说socket可以做   但不怎么怎么做
      

  4.   

    说了半天,还是没给我答案啊。
    什么AJAX都J8唬人的,拉个Timer控件还不是定时读数据库啊。web除了定时读数据库还有其他方法吗?push推?
      

  5.   

    11楼给力啊,timer? 我找找相关资料。看看怎么弄
      

  6.   


    确实可以用AJAX体验还是会好点的timer不过是个定时器自己手写就能做到了。。
      

  7.   

    AJAX体验怎么弄?我用的是Jquery+.net写的。一般不会拉服务器控件进来的!
      

  8.   


    jquery timer这些 远不如silverlight来做这个。。
      

  9.   

    websocket现在好像只有chrome支持, 其他都需要客户端设置, 和普通的socket一样需要一个服务器端支持.
    如果做一般的聊天室,还是ajax轮询了.3-5秒都可以.
      

  10.   

    如果ajax轮询,可以在服务器端用缓存+数据库实现. 数据量达到一定时候再读写.
      

  11.   

    闪动效果我倒是做出来了。用setInterval做的!!!!!!!!!
      

  12.   

    可以用silverlight+wcf duplex实现,但是客户端要装个几M的插件
    再就是使用ajax轮询以及commet push推了,长连接不明白....  观望,等大神
      

  13.   

    接上 要么等html5 socket...
      

  14.   


    如果聊天记录存数据库的话,就算用push推还不是定时读数据库啊?
      

  15.   

    当初做了一个.头像闪动简单.通过css设置一下img的padding或者margin就行了.
    声音提醒就是做一个很小的声音.考虑用flash吧.弄一个很小的flash.然后控制play就OK了
      

  16.   

    - - 效果弄出来咯.用了很多个setInterval和setTimeout,不过我都在适当的时候用上clearInterval和clearTimeout,虽然不好,但是也没办法啦! 接下来要做QQ群了! QQ群又是什么原理。懂得讨论讨论啊!
      

  17.   

    我要说我之前有用socket做过,然后再想做只能看之前的项目,你们会不会抽我=。=!,虽然只是winform的说。
      

  18.   


    群 - 用户 : 1 -  N 关系群 - 群信息: 1 - N 关系用户 - 群信息:1 - N 关系
    闪动的效果你自己会了,按照某用户针对群每条信息是否读取来标识是否有未读信息,这样不合理,你还是设置一个:某用户针对某个群上次读取信息的时间标识,此信息标识可以说某用户针对本群上一次最后一条信息的发布时间。
      

  19.   

    闪动,嗯,可以用GIF图片去做,也可以JS控制,播放声音,嗯,同样,JS,如果用轮询,太没有水准,不如泥做,考虑用推送,如果推送实现了,希望楼主可以发份推送代码给咱,咱也研究下
      

  20.   

    我关心怎么实现实时聊天不关心怎么让头像闪动,WIN程序当初容易实现,WEB的还真没实现过
      

  21.   

    http://blog.csdn.net/IBM_hoojo/archive/2010/04/18/5498731.aspx
      

  22.   


    用flash吧.
    flash + js 交互使用,相信能够实现.留下交流qq  295218001
      

  23.   

    你只用做一个qq群聊的就行了.qq群是很多个人聊天.
    两个人相互qq聊天, 就是一个qq群里面只有两个人.
      

  24.   

    http://pushmodule.slact.net/
    https://github.com/wandenberg/nginx-push-stream-module
      

  25.   

    就以前做过的电信实时监控项目发表些意见
    1,客户端,首先要考虑的是如何不断获取数据,采用的技术和封包格式
    方式1,用ajax定时获取,即使每秒读取一次,有些人可能会觉得服务负载过重,但我告诉你,绝对没有问题,知道显示一个普通网页(如csdn主页)对服务器会发生多少次请求吗?这个数值在60次以上,相当于1分钟刷新一次csdn主页,如果你对封包格式再优化下,不会存在性能问题
    方式2,采用push技术,也就是所谓的Comet长连接,我们知道,在http1.1标准中,支持Keep-Alive功能,使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,避免了建立或者重新建立连接,具体做法是在web窗口中嵌入一个iframe,该iframe与服务器保持长连接,当服务器有新的消息时,不断push给客户端,google的gamil和gtalk就是使用这种技术,这种方式在IE中会有点问题,会显示页面一直未加载完成,具体的解决访求可以上google 搜索一下htmlfile
    方式3,使用socket,这种方式需要第三方插件支持,比如applet,silvelight,flash/flex,applet不支持update html控件,所以就别想了,flash/flex倒是非常容易实现,它支持socket和xmlsocket,但受到安全沙箱限制,需要在服务器上额外配置策略文件
      

  26.   

    消息的获取需要注意的是不要一条消息获取一次,而是一次获取发送给该用户的所有消息2,服务端
    服务端需要考虑的是存储策略和更新方式,应避免每一次消息都立刻存库,因为一次数据库连接的开销是非常大的,可使用缓存,但不是net Cache这样的,到时就恐怕无法进行升级和维护(比如重启),可以使用比如Memcached,Velocity。Memcached已经有大量的应用,如facebook,Velocity是微软的产品,纯.net开发的,在.net framework 4版本中自带了,但需windows 2008支持,呵呵,有点说远了, 在更新到数据库一般有两种方法,一种是定时更新,这种好理解,一种是定量更新,就是当数据量达到设定的值时才更新至于闪动和声音控制,用silvelight或flash就很好处理,特别是声音控制,当播放时要进行预加载,确保声音文件已下载到客户端,当有多个消息时应该有播放间隔控制,避免重音。如果用js,就我所知,无法实现这些细节,如果有高手知道,也请分享一下
      

  27.   

    ajax    或者最好自己做一个 activce 控件结合 浏览器 的一些优势
      

  28.   


    搞个不可见的flash 功能就是socket部分。跟服务器取数据,然后通知js调用数据
      

  29.   

    web qq是FLASH开发的。可以用falsh试试