聊天室的进入

发布网友 发布时间:2022-04-24 21:59

我来回答

1个回答

热心网友 时间:2023-10-12 09:57

通常聊天室有两种,一种是基于网页的,还有一种是需要安装软件的。
我们来看看第一种浏览器的看看进入聊天室的过程。
1.首先浏览器请求页面:
此时产生了一个连接到服务器聊天端口的联接,并发送了一行数据:
2.服务器生成一个session ID,验证密码以后,发回:
然后服务器关闭连接。
3.浏览器收到以上文件后,将会依次打开三个连接(其中的$sid和$encrypt_pass是变量):
这三个联接中的第一个联接chat在整个聊天过程中都是保持连接的,这样从浏览器角度来看,就是一个始终下载不完的大页面,显示效果上就是聊天内容不是靠刷新来更新,而是不断地向上滚动。通过察看代码可以看到,然后就是不断增加的聊天内容.
另外两个连接在页面发送完毕以后,就关闭了。
这样一次登录聊天室实际上有四次连接,但登录完成以后,只有chat帧的是保持连接的,用于接收来自服务器的聊天信息,这是聊天室的关键所在。
在服务器端储存了所有参加聊天的客户的chat,当有人发言时,服务器就向所有chat发送聊天内容。
Talk与names帧的html实际上和普通的form是一样的。
4.在用户登录以后,服务器端保存了一张包括用户信息的表格:
在perl实现中,我们使用哈希结构储存信息,以session ID 作为key索引。这样的存储结构便于存取数据,回收空间。每个客户信息是一个数组:
[name,passwd,privilige,filter,login_time,color]:储存chat帧联接name:用户名passwd:密码privilige:权限filter:某个用户的过滤列表的引用(reference)login_time:记录登录时间,以便以后清除一些超时联接 color:用户聊天颜色
以上用户数据大部分是在login阶段,用户通过密码验证以后填入的。只有chat要等到chat帧显示以后才得到。如果超过一定时间,还是没有填入,说明浏览器取得主框架以后连接中断了,这时候就需要删除该用户数据。
以上是聊天室核心部分,其他部分,如用户注册、改密码等可以沿用CGI聊天室代码。
致于第二种就简单多了,下载聊天室程序安装后注册一个帐号,就可以登陆了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com