聊天室制作中遇到的几个问题

yuler 2000-05-24 09:40:00
最近试着编一个聊天室程序,中间遇到几个问题如下,请各位专家帮帮忙。
1. 如何实现私聊?
2. 当浏览者从聊天室非正常退出时,如何得知并将其从数据库中删除?
...全文
404 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ring 2000-05-30
  • 打赏
  • 举报
回复
聊天的内容可以不用数据库
但是用户的管理还是要用数据库呀
网易的聊天室其实是用socket编程实现的,相当于自己写了一个Web Server,但功能是单一的,只能用于聊天的webserver,一个房间是一个端口,也就是在n个端口开了n个聊天服务器,很好的实现了push的机制
waynezlee 2000-05-30
  • 打赏
  • 举报
回复
大家能不能撇开数据库写聊天室,application,session已经足够写一个聊天室了,
也能解决上述两个问题。
一个通过数据库的聊天室我想会很慢的^-^

asp写不出一流的聊天室。(个人意见)

请问专家们:网易的聊天室是用Servlet写的吗?
hwm_joe 2000-05-30
  • 打赏
  • 举报
回复
操,网易的聊天室怎么会是这样?
htide 2000-05-25
  • 打赏
  • 举报
回复
一个参考表结构:
ID int '主键
UserName char '户名
Password char '密码
Flag bool online 'flag
Lasttime date 'last speaking time'
content text 'public and private talking
flyfox 2000-05-24
  • 打赏
  • 举报
回复
随便找一本ASP的书都有。
flyfox 2000-05-24
  • 打赏
  • 举报
回复
用application对象,随便找一本ASP的书,都有介绍聊天室的例子。
cslyg 2000-05-24
  • 打赏
  • 举报
回复
我想可以这样实现私聊:在每条聊天记录中加入发送者和接受者字段。显示聊天记录的程序中,用sql语句返回每个用户的动态集。
Again 2000-05-24
  • 打赏
  • 举报
回复
第一个问题我是这样想的:
1。另外开房间,用ASP自动生成新房间
2。如不开房间则要求提交接受方ID,并在用户登录时用Session记下用户ID,然后
<%
IF request("userid")=Session("userid") THEN
response.write Talkstr
END IF
%>
如A对B说,则在A提交时连同B的ID一起提交,这样B就可以看到A所要说的话,而其他人则看不到

上面只是想法,我还没试过
ljv_23 2000-05-24
  • 打赏
  • 举报
回复
第一问题我也想知道.

第二个问题就我的经验:当用户登录到你的聊天室后,定时向你的数据库报告时间
等信息,如果在规定的应答时间没有收到用户的回应时便可知用户已非正常退出.
ring 2000-05-24
  • 打赏
  • 举报
回复
1.可在数据库里加字段标志是不是私聊,如果使用文本文件实现的,也可每人一个文件,这样子私聊时就只向两个人写文件就行了,以此类推,也可用application,每人一个application变量,变量的名字放在数据库里,内容在内存里
2.每次发话在数据库里填一下时间,在那个自刷新的页面,每运行一遍就执行一个delete语句,将时间小于当前时间5分钟的纪录删掉,同时把那个人的session消灭,这样他再发出请求时就被警告发呆超过5分钟,再来一个redirct就被踢出了,
mxp 2000-05-24
  • 打赏
  • 举报
回复
第一个问题,不要用那个Session,问题多多,用全局二维数组吧!大家说的很合理!实际上Application中与话相同的Id上有一个存名称和对*的名称就行了。
Application(tow & i)
Application(dialog & i)等等。

第二个问题,框架有个部分自动刷新,刷新时检查用户名等在不在,不在就消失;另外,进入时有个时间,检查时存入自己现在时间,当有一个掉线了,时间就不再存了嘛!当查到有一个人时间过了两分钟还没刷新过,显然是掉线了。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧