聊天室聊客离开后怎么删除他创建的application
想做一个聊天室,聊客登陆时创建application,离开时应该自动删除,这个如何实现的,不知道大型的聊天网站是如何实现的,有经验的朋友交流一下
------解决方案--------------------给他创建session,所有用户公用application,否则重启网站。
------解决方案--------------------聊天室要解决的技术问题有:
一、如何判断新数据
二、新数据的提取
三、如何让客户断在有新数据时能及时更新
以上一、二用Application很容易实现,但第三个问题不容易解决。用数据
库做聊天室,第三个问题相对容易,但第一、二个问题要费点精神。用
数据库做的聊天室采用了“无刷新”技术,没有用一个Application,主要
的技术要点是:
在数据库中另设置只有一个字段的表,字段名:BS
用户每次登陆读一次BS 的值。 设一个Session别作为每一个具体用户的
当前发言次数,初始为 BS-1。
用户每发言一次使 BS + 1(Session 值不此时不加,形成Session与BS差)
在隐性刷新帧上判断:
如果 BS 与 Session 有差,则读数据库将新数据读出并在显示帧显示。
Session+1 表示新数据已经读出,不再重读。
反复此过程,直到所有新数据据读出并显示。此时 BS = Session
上述方法解决了上面讲的 判断新数据和新数据的提取的问题。由于新数据
本身没有任何变化,依然原样存放在数据库中,客户端无论时间差多大,只
要自身的Session与BS有差,一当读库,差多少多多少条记录,解决了客户端
刷新差异带来的不显示问题。
以上方法,当然也可以用Application来设置 BS。还有一但BS 到了一定值
时(看同时发言人数而定),要重置为 1 。
以上方法在 IIS 4 平台,局域网、因特网通过。
------解决方案--------------------Application.UnLock
------解决方案--------------------具体不太清楚,感觉聊天室用Application并不是好的解决办法,占资源
上百人恐怕就不成了吧?
------解决方案--------------------Application 比读数据库快吧?
要删除肯定只有根据时间咯:每次用户刷新就更新Application( "user_xxx ")( "refreshtime "),每5分钟删除一次没有更新的Application( "user_xxx ")(根据Application( "user_xxx ")( "refreshtime ")).