[求助]JSP的突法奇想~ 用ajax,定时访问数据库,查找新会员,有就弹出提示框! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 someone is login....., status as online=true ;query his friends who are online too...send message to notice he is online now.... someone is login....., status as online=true ;query his friends who are online too...send message to notice he is online now....这样只要朋友在线就会不停得提示 再加一个标志符控制,比如flag,默认flah=0,当status=online的时候,观察flag是否为0,如果为0就发出提示信息,如果是1就不发了 1.做一张消息表: message,字段如下:id fromId toId content createTime isRead当一个人上线时,就会给他(她)的朋友发一个消息,说明自己上线2.在客端用ajax定时访问服务器,查询自己有没有新消息.如果有消息则在浏览器端显示,并在数据库中把message表中的那一条数据的"isRead"置为已读 flag不行,不能实现对多个好友的提示,也就是说如果上线的人有多个好友在线,而其中又有一部分人(不是全部在线好友)设定了上线提示,那样的如何实现?我个人觉得应该从session的监听入手,用session监听在线用户数量想必大家都知道,那么当监听到有自己关注的用户登陆的时候,发出提示,就应该能实现搂住的想法了。 个人观点,仅供参考 补充一下:1.当一个人上线时,就会给他(她)的朋友发一个消息,说明自己上线的意思是,往message中写一条信息,并且isRead为未读(至于怎么标记,那就看各人爱好了,有人用boolean型,有人用0和1,不过我觉得用0和1更具有可扩展性)2.至于如何判断是否上线,我想这个我就不用说了吧 感谢大家热情的帮助谈谈我的看法我曾经做过类似QQ的聊天软件,是C/S结构的我觉得让客户端不断的向服务器查询有没有新消息不妥,太耗资源了不如让客户端这里建一个线程,来监听服务器主动发来的字符流string=bufferedReader.readLine();如果string.equals("你的朋友某某上线了");就在屏幕左下角慢慢浮现出一个窗口(窗口不行的话,别的也行),再慢慢的消失现在我的问题是不知道用什么技术实现客户端这里需要的功能:怎么样才能浮现出一个窗口,然后慢慢消失JSP能实现吗?还是要用到AJAX呢?或者是其他的? 我是用的JavaScript特效,网上有源码什么网页制作百宝箱之类的你去下个看看吧! 楼主的想法是好的,但就楼主下面的两句话,我想说两句:"我觉得让客户端不断的向服务器查询有没有新消息不妥,太耗资源了"不如让客户端这里建一个线程,来监听服务器主动发来的字符流string=bufferedReader.readLine();"1.请楼主看一下Htpp协议2.请楼主搞明白什么是b/s和c/shttp是基于请求/响应范式的,如果不请求是不能和服务建立连接的.如果能和服务器建立一个线程,就也就成java版的c/s了! 至于怎么样才能浮现出一个窗口,然后慢慢消失,我觉得你去网上找一个JS特效的框吧. scriptaculous.js好像能实现你要的功能. djy1135(晨阳) 说的很有道理,scriptaculous.js这个能传过来一份吗,我的QQ是247705592 可以用java applet向服务器URL定时发送heartbeat消息,和ajax类似,但应该更效率,缺点是不是所有浏览器都支持applet,比如ie6 。 我用C/S写过类似QQ的聊天软件和一个文件传输软件(实现聊天功能).但是“文件传输软件”没有一个很好的办法把字节流和字符流区分开,只能靠流包装解决,但是缓冲区过大的话容易引起数据丢失,所以缓冲区设得很小,而且是单线程的,有哪位仁兄用过多线程解决的? 补充一下,是一个Socket一个线程,有谁用了一个Socket多个线程解决的吗? 慢慢消失 就是传说中的”黄褪技术“吧 利用AJAX 不过相关资料我一直没查到哪位有贡献一下啊 一般都是客户端定期查询数据库状态了如不想客户端定期重发请求轮询,只能服务器端记录,每个用户的session应该有记录当前user的数据库id吧?用SessionListener把每次登录成功的session记录在某单个实例的concurrence的Map中,key可以是userid或sessionid那么当某个login 的user登录后从数据拿到friend的userid集合,根据Map中的记录查询上述session集,拿到对应的句柄,设值用于提醒,那么下次这些friend的请求到达时检查session发现标识则出现提醒,然后把标识清掉,这是服务器端作记录的思路 是用黄褪技术吗?现在就是找不到资料,有提供资料丰富的AJAX论坛或网站的话给60分!! 建议使用AJAX技术 比较方便快捷 hibernate Could not execute JDBC batch update 急急急~~~~在线等 正则表达式 怪了!初始化块里面访问实例变量的奇怪问题,高手请进解释! 如何导出数据库? log4j如何设置log文件名为项目名+时间戳的格式 SSH中的 Criteria 为何取不到数据 找jsp的自定义查询实例。 大虾帮助改改错?----一菜鸟 求助:socket! 我想学习J2EE该从哪里入手??? javascript 一个很急的问题,各位大侠帮帮我啊!!!! 在weblogic中如何配置hibernate? 谁能给一个详细说明。。
id fromId toId content createTime isRead当一个人上线时,就会给他(她)的朋友发一个消息,说明自己上线2.在客端用ajax定时访问服务器,查询自己有没有新消息.如果有消息则在浏览器端显示,并在数据库中把message表中的那一条数据的"isRead"置为已读
我个人觉得应该从session的监听入手,用session监听在线用户数量想必大家都知道,那么当监听到有自己关注的用户登陆的时候,发出提示,就应该能实现搂住的想法了。 个人观点,仅供参考
1.当一个人上线时,就会给他(她)的朋友发一个消息,说明自己上线
的意思是,往message中写一条信息,并且isRead为未读(至于怎么标记,那就看各人爱好了,有人用boolean型,有人用0和1,不过我觉得用0和1更具有可扩展性)2.至于如何判断是否上线,我想这个我就不用说了吧
怎么样才能浮现出一个窗口,然后慢慢消失JSP能实现吗?还是要用到AJAX呢?或者是其他的?
你去下个看看吧!
不如让客户端这里建一个线程,来监听服务器主动发来的字符流string=bufferedReader.readLine();"1.请楼主看一下Htpp协议
2.请楼主搞明白什么是b/s和c/shttp是基于请求/响应范式的,如果不请求是不能和服务建立连接的.如果能和服务器建立一个线程,就也就成java版的c/s了!
和ajax类似,但应该更效率,
缺点是不是所有浏览器都支持applet,比如ie6 。
但是“文件传输软件”没有一个很好的办法把字节流和字符流区分开,只能靠流包装解决,但是缓冲区过大的话容易引起数据丢失,所以缓冲区设得很小,而且是单线程的,有哪位仁兄用过多线程解决的?
哪位有贡献一下啊
每个用户的session应该有记录当前user的数据库id吧?
用SessionListener把每次登录成功的session记录在某单个实例的concurrence的Map中,key可以是userid或sessionid
那么当某个login 的user登录后从数据拿到friend的userid集合,根据Map中的记录查询上述session集,拿到对应的句柄,设值用于提醒,
那么下次这些friend的请求到达时检查session发现标识则出现提醒,然后把标识清掉,
这是服务器端作记录的思路