⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 技术文档.txt

📁 聊天功能的实现
💻 TXT
字号:
[工作原理]

1.  柠檬树聊天室采用Socket及ServerPush 技术编写,以下分析实现原理以及与传统CGI\ASP聊天方式的不同方面

    传统型的CGI或ASP聊天程序,进入聊天室界面下载完毕后就和服务的连接完全断开,由浏览器每隔几秒种再次向服务器请求连接,查看有无新发言,并将发言写入聊天页面中,这样,不管有没有发言,浏览器和服务器必须每隔几秒相互连接,进行连接握手,确认,这样带来的后果是比较消耗服务器资源和线路带宽,彼此之间的资源较多地花在连接上,并且当聊天人数达到一定数量,服务器每时都在处理多达上百个连接请求时,ASP服务器很容易崩溃,这种处理方式称为 ClientPull。

    所谓ServerPush 方式,就是使用一个chat联接在建立后整个聊天过程中都是保持的,这样从浏览器角度来看,就是一个始终下载不完的大页面,显示效果上就是聊天内容不是靠刷新来更新,而是不断地向上滚动(ASP也可通过Document.Write方法写本地文件,表面上也看不到刷新,但实际刷新是由隐含的Frame处理的)。通过察看html代码可以看到,只有<html><body>,然后就是不断增加的聊天内容,没有</body></html>。这是socket聊天室的关键所在。
在服务器端储存了所有参加聊天的客户的chat socket,当有人发言时,服务器就向所有chat socket发送聊天内容。这样做的好处是聊天信息是由服务器端即时发送给浏览器,聊天速度快,再者,由于不需要反复连接服务器,线路带宽很省,线路上只是传送聊天的文字信息,这样就可能容纳很多人在线聊天。
   ......



[参考内容]

1.    聊天室的最初结构来自于Entropy Chat 2.0(http://missinglink.darkorb.net/pub/entropychat/),如果没有它的启示,完成这一系统会有许多困难,非常感谢他们的努力工作。

2.    http的基本交互过程请参考
HTTP Made Really Easy(http://www.jmarshall.com/easy/http/),RFC1945:Hypertext Transfer Protocol -- HTTP/1.0


3.    为加快开发过程,程序的ASP管理界面部分参考了稻香居聊天室,管理上的很多想法也来自于他们的工作。

4.    《How to Write a Chat Server》可以作为一个很好的参考
http://hotwired.lycos.com/webmonkey/97/18/index2a.html

6.    需要测试聊天室功能可以到 http://www.skly.net.tc


                                  2002年5月21日
                                  skly1985@sina.com



















              

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -