做一个类似腾讯QQ的聊天工具(WEB版) 我做了一个网页版的聊天工具.功能全部都是模仿腾讯QQ做的。现在遇到这样一个问题:别人发信息过来的时候头像会跳动,该分组会闪动。该怎么做到呢?还有声音提示的,就跟腾讯一模一样就好了! 这些功能应该都不难吧。不过对于我这个菜鸟来说还是没有什么思路的。求高手解答!我的面板都是用CSS+DIV弄的。C#.NET 大虾们别扯远了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 AJAX聊天试网上很多例子可以借鉴了。。LZ找找看看用AJAX后台做个定时取消息 用AJAX后台做个定时取消息头像闪动什么的jQuery控制就好了。。 我也只知道ajax轮询 据说socket可以做 但不怎么怎么做 说了半天,还是没给我答案啊。什么AJAX都J8唬人的,拉个Timer控件还不是定时读数据库啊。web除了定时读数据库还有其他方法吗?push推? 11楼给力啊,timer? 我找找相关资料。看看怎么弄 确实可以用AJAX体验还是会好点的timer不过是个定时器自己手写就能做到了。。 AJAX体验怎么弄?我用的是Jquery+.net写的。一般不会拉服务器控件进来的! jquery timer这些 远不如silverlight来做这个。。 websocket现在好像只有chrome支持, 其他都需要客户端设置, 和普通的socket一样需要一个服务器端支持.如果做一般的聊天室,还是ajax轮询了.3-5秒都可以. 如果ajax轮询,可以在服务器端用缓存+数据库实现. 数据量达到一定时候再读写. 闪动效果我倒是做出来了。用setInterval做的!!!!!!!!! 可以用silverlight+wcf duplex实现,但是客户端要装个几M的插件再就是使用ajax轮询以及commet push推了,长连接不明白.... 观望,等大神 接上 要么等html5 socket... 如果聊天记录存数据库的话,就算用push推还不是定时读数据库啊? 当初做了一个.头像闪动简单.通过css设置一下img的padding或者margin就行了.声音提醒就是做一个很小的声音.考虑用flash吧.弄一个很小的flash.然后控制play就OK了 - - 效果弄出来咯.用了很多个setInterval和setTimeout,不过我都在适当的时候用上clearInterval和clearTimeout,虽然不好,但是也没办法啦! 接下来要做QQ群了! QQ群又是什么原理。懂得讨论讨论啊! 我要说我之前有用socket做过,然后再想做只能看之前的项目,你们会不会抽我=。=!,虽然只是winform的说。 群 - 用户 : 1 - N 关系群 - 群信息: 1 - N 关系用户 - 群信息:1 - N 关系闪动的效果你自己会了,按照某用户针对群每条信息是否读取来标识是否有未读信息,这样不合理,你还是设置一个:某用户针对某个群上次读取信息的时间标识,此信息标识可以说某用户针对本群上一次最后一条信息的发布时间。 闪动,嗯,可以用GIF图片去做,也可以JS控制,播放声音,嗯,同样,JS,如果用轮询,太没有水准,不如泥做,考虑用推送,如果推送实现了,希望楼主可以发份推送代码给咱,咱也研究下 我关心怎么实现实时聊天不关心怎么让头像闪动,WIN程序当初容易实现,WEB的还真没实现过 http://blog.csdn.net/IBM_hoojo/archive/2010/04/18/5498731.aspx 用flash吧.flash + js 交互使用,相信能够实现.留下交流qq 295218001 你只用做一个qq群聊的就行了.qq群是很多个人聊天.两个人相互qq聊天, 就是一个qq群里面只有两个人. http://pushmodule.slact.net/https://github.com/wandenberg/nginx-push-stream-module 就以前做过的电信实时监控项目发表些意见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,但受到安全沙箱限制,需要在服务器上额外配置策略文件 消息的获取需要注意的是不要一条消息获取一次,而是一次获取发送给该用户的所有消息2,服务端服务端需要考虑的是存储策略和更新方式,应避免每一次消息都立刻存库,因为一次数据库连接的开销是非常大的,可使用缓存,但不是net Cache这样的,到时就恐怕无法进行升级和维护(比如重启),可以使用比如Memcached,Velocity。Memcached已经有大量的应用,如facebook,Velocity是微软的产品,纯.net开发的,在.net framework 4版本中自带了,但需windows 2008支持,呵呵,有点说远了, 在更新到数据库一般有两种方法,一种是定时更新,这种好理解,一种是定量更新,就是当数据量达到设定的值时才更新至于闪动和声音控制,用silvelight或flash就很好处理,特别是声音控制,当播放时要进行预加载,确保声音文件已下载到客户端,当有多个消息时应该有播放间隔控制,避免重音。如果用js,就我所知,无法实现这些细节,如果有高手知道,也请分享一下 ajax 或者最好自己做一个 activce 控件结合 浏览器 的一些优势 搞个不可见的flash 功能就是socket部分。跟服务器取数据,然后通知js调用数据 web qq是FLASH开发的。可以用falsh试试 请教用javascript实现无刷新验证码的问题 关于截取字符串中各个蛮量值 C#基于TCP/IP协议上的多线程编程 如何在web.config中存下一个数组string 菜鸟问题 遇到1个奇怪问题,麻烦高手来看1下 下载对话框中的文件名有的是正确的中文也有是乱码,而且对话框会弹出两次 在一个窗体中控制另一窗体中控件的执行 超级基础问题:页面转向问题和函数调用问题 求助:如何在网站根目录建立asp.net工程啊? asp.net mvc jquery问题 使用mvc3 razor,cshtml页面智能提示消失
AJAX聊天试网上很多例子可以借鉴了。。LZ找找看看用AJAX后台做个定时取消息
头像闪动什么的jQuery控制就好了。。
什么AJAX都J8唬人的,拉个Timer控件还不是定时读数据库啊。web除了定时读数据库还有其他方法吗?push推?
确实可以用AJAX体验还是会好点的timer不过是个定时器自己手写就能做到了。。
jquery timer这些 远不如silverlight来做这个。。
如果做一般的聊天室,还是ajax轮询了.3-5秒都可以.
再就是使用ajax轮询以及commet push推了,长连接不明白.... 观望,等大神
如果聊天记录存数据库的话,就算用push推还不是定时读数据库啊?
声音提醒就是做一个很小的声音.考虑用flash吧.弄一个很小的flash.然后控制play就OK了
群 - 用户 : 1 - N 关系群 - 群信息: 1 - N 关系用户 - 群信息:1 - N 关系
闪动的效果你自己会了,按照某用户针对群每条信息是否读取来标识是否有未读信息,这样不合理,你还是设置一个:某用户针对某个群上次读取信息的时间标识,此信息标识可以说某用户针对本群上一次最后一条信息的发布时间。
用flash吧.
flash + js 交互使用,相信能够实现.留下交流qq 295218001
两个人相互qq聊天, 就是一个qq群里面只有两个人.
https://github.com/wandenberg/nginx-push-stream-module
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,但受到安全沙箱限制,需要在服务器上额外配置策略文件
服务端需要考虑的是存储策略和更新方式,应避免每一次消息都立刻存库,因为一次数据库连接的开销是非常大的,可使用缓存,但不是net Cache这样的,到时就恐怕无法进行升级和维护(比如重启),可以使用比如Memcached,Velocity。Memcached已经有大量的应用,如facebook,Velocity是微软的产品,纯.net开发的,在.net framework 4版本中自带了,但需windows 2008支持,呵呵,有点说远了, 在更新到数据库一般有两种方法,一种是定时更新,这种好理解,一种是定量更新,就是当数据量达到设定的值时才更新至于闪动和声音控制,用silvelight或flash就很好处理,特别是声音控制,当播放时要进行预加载,确保声音文件已下载到客户端,当有多个消息时应该有播放间隔控制,避免重音。如果用js,就我所知,无法实现这些细节,如果有高手知道,也请分享一下
搞个不可见的flash 功能就是socket部分。跟服务器取数据,然后通知js调用数据