用JSP做无刷新聊天室谁有好思路 每条聊天记录一个类,然后把类放到map中,key为两个人的id写个定时器,用spring封装的定时器也行,定时去取map中的值,然后保存到数据库中map的名字可以用时间表示 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 开个线程,定时检查application里的数据。可以定时往数据库写,也可以在消息达到一定条数时,才写数据库。每个客户端定时从服务器取消息不行吗?如果是客户端PULL的方式,你就没有这个烦恼了,呵呵。收到请求都放application。谁爱看,谁自己取。 一边实践,一边集思广益,白天不能上Q,所以群邮件讨论吧。------------------------------(群邮件群): 22273653各位白天不能上Q或者其他原因,习惯用群邮件交流的同志请加群。涉及话题 : J2EE,Flex,JS,领域建模群号码 : 22273653 对于第一个问题,我的观点和kokobox兄弟的一样写个定时器,定期向数据库保存数据 我大概理解你的意思了,可以定义一个聊天记录类,有这样几个字段,(发言人的id,发言人对谁发言再记录一个id,发言内容,系统当前时间戳),我可以把时间设成map的key,然后排序。 我不知道这个怎末做,我的理解好想JSP是应答式的工作方式,只有我想服务器发送了请求才能收到服务器的反馈,你的意思是不是在每个JSP页面里面都include一个页面,这个页面定时执行一个js函数,这个函数想服务器索取最新的聊天记录。 js脚本里写个setTimeout循环调用自己,定时的用Ajax从服务器取数据 我的毕业设计做的和这个差不多,当时刚学jsp写的很烂。我的思路是把你消息写到jsp<!% Map mapMsg=new HshMap();%>的map中,这样就可以减少对Application的访问,毕竟其他页面可能也要用Application.需要注意要把map的读取串行化。至于消息的发送你可以使用基于长连接的服务器推技术,很简单,Ibm的网站上有这方面的资料 聊天室的内容保存在HASHMAP中,其中有两种方案,一种是以字符串的形式储存,一种是建立单独的聊天POJO,将对象放进MAP里面,在聊天的运行上我推崇第一种,在数据保存上,我推崇第二种。可以通过AJAX定时刷新页面获取最新数据,也可以通过触发器,原理类似于工作流。 网上有很多AJAX聊天室的例子,楼主可以借鉴一下 关于LZ的问题,推荐使用DWR框架的反向AJAX机制来解决,因为在反向AJAX中,服务器端可以监听到客户端当前页面的信息。具体的可以上网查查,也可以下载官方示例,里面有完整的AJAX聊天室代码。 无刷新的聊天室的话 你只能用AJAX放个JS定时去后台取数据好一点的话(至少不用总是让AJAX去后台取数据) 那就在页面套个APPLET 那样的话不仅不需要刷新 而且还能实时显示数据 完美的很 前后台交互不多说,要么ajax定时请求,要么建立长链接服务器推送。但是数据读写这块,最好是不要用map,或者application这种方式,一般用这些,都是用来做缓存的,但是现在时一个聊天室,读写一定很频繁,而且有时间上的先后顺序,你要用的话,一定要保证一个读写安全,对map要加锁,还是读DB吧 为什么要用application直接建立一个serivce类 在里面设个集合属性 专门存放聊天记录。通知刷新的话就用JS有一个叫set***的函数来的,就是专门刷新的 其实这是一个ajax的数据推送,也就是当服务器端的数据发生改变以后,立刻主动推送到客户端!这个技术我在网站上没找到相关资料!但是的确有! 写入到EXCEL里的字符串怎么打开EXCEL后显示出换行呢? 请问:如何判断 传来 的是 控件 还是 控件数组? 散分了!!!,大家进来看看 tomcat连接sql错误:java.lang.ClassNotFoundException,高手帮忙看看 关于取出的数据是乱码的问题 简单的servlet 配置问题 急问! DIV规划问题 新手问题2---- 小问题?急!在线等候....... Jsp+access中的select语句中进行日期比较问题 求助:Tomcat为什么罢工了? 有没有做得像DISCUZ或者PHPBB这样的免费JAVA论坛软件?
每个客户端定时从服务器取消息不行吗?
如果是客户端PULL的方式,你就没有这个烦恼了,呵呵。收到请求都放application。谁爱看,谁自己取。
(群邮件群): 22273653
各位白天不能上Q或者其他原因,习惯用群邮件交流的同志请加群。
涉及话题 : J2EE,Flex,JS,领域建模
群号码 : 22273653
写个定时器,定期向数据库保存数据
我大概理解你的意思了,可以定义一个聊天记录类,有这样几个字段,(发言人的id,发言人对谁发言再记录一个id,发言内容,系统当前时间戳),我可以把时间设成map的key,然后排序。
我不知道这个怎末做,我的理解好想JSP是应答式的工作方式,只有我想服务器发送了请求才能收到服务器的反馈,你的意思是不是在每个JSP页面里面都include一个页面,这个页面定时执行一个js函数,这个函数想服务器索取最新的聊天记录。
我的思路是把你消息写到jsp
<!%
Map mapMsg=new HshMap();
%>
的map中,这样就可以减少对Application的访问,毕竟其他页面可能也要用Application.
需要注意要把map的读取串行化。至于消息的发送你可以使用基于长连接的服务器推技术,很简单,Ibm的网站上有这方面的资料
可以通过AJAX定时刷新页面获取最新数据,也可以通过触发器,原理类似于工作流。
这个技术我在网站上没找到相关资料!但是的确有!