在线聊天 现要设计一个在线聊天系统,需要群聊功能,有一张群聊的信息表,有一个字段是判断该条信息是否已经被接收过。但问题是,如果群内的一个用户首先接收了该条信息,则其他用户将获取不到该条信息。不知如何设计,才能让每一个用户实时获取群内消息,望各位高手不吝赐教。聊天聊天室设计 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 每个客户都要有个已接收信息表,里面记录了接收了的消息ID,每个客户登陆或者登陆后循环检查自己的消息ID表和公用消息ID有没有少的,少的就是要接收的,不过这个设计不是很合理。按理说在线聊天不就是大家一起聊,然后大家一起读取同一个表的数据,不用管什么接收没接收的,就是不停的读取公用表。 写一个类 实现了queue接口就行了单独起一个线程来操作这个queue 其实没有必要建已接受信息表,可以将上一次获取的最后一条消息的id保存在session里,然后每次获取id大于该值的消息,并重写该值。 http://download.csdn.net/detail/bichir/5088881这里有一个例子,写得比较粗的。很多细节方面需要自已去考虑。大概思路是,当客户一打开我聊天的地址,就让客户端以AJAX发出获取聊天信息,当请求上服务器时,判断当前是否有消息,若有则让服务器把消息放进他的那个writer里,如果没有,就把这个请求挂起来。直接有消息上来,才取消挂起(这里需要注意细节,超时问题,当过了一定时间没有消息,我们也要把这个挂起的线程取消,并让他重新发新请求)。当客户端成功获取消息或成功反回一次200状态,我们马上再让客户端发起请求,这样一个死循环。 SSH 面试题来了 tomcat中,jsp页面中<img src="中文图片名">无法显示 java问题!!急急急 请问怎么在MyEclipse中配置websphere服务器 jasperreport 问题 fckEditor 上传图片,图片名中文乱码问题(jsp)大家帮忙 是高手就进来!!! JSP中的'class' or 'interface' expected? (高手请进)tomcat中,server.xml中的如下的参数如何访问? PDF印刷问题 使用jsp调用tag文件时浏览器显示中文乱码怎么办? struts2,hibernate和spring三大框架整合的项目
写一个类 实现了queue接口就行了
单独起一个线程来操作这个queue
其实没有必要建已接受信息表,可以将上一次获取的最后一条消息的id保存在session里,然后每次获取id大于该值的消息,并重写该值。
大概思路是,当客户一打开我聊天的地址,就让客户端以AJAX发出获取聊天信息,当请求上服务器时,判断当前是否有消息,若有则让服务器把消息放进他的那个writer里,如果没有,就把这个请求挂起来。直接有消息上来,才取消挂起(这里需要注意细节,超时问题,当过了一定时间没有消息,我们也要把这个挂起的线程取消,并让他重新发新请求)。当客户端成功获取消息或成功反回一次200状态,我们马上再让客户端发起请求,这样一个死循环。