易截截图软件、单文件、免安装、纯绿色、仅160KB

用Java NIO写HTTP Server记录

花了一个多月用Java NIO写了一个定制的HTTP Server,主要是支持我的WeBuzz.IM网页版聊天服务

先介绍一下WeBuzz.IM网页聊天服务。
WeBuzz.IM
是一款网页版即时聊天工具,用于帮助用户通过网页和朋友聊天。Gtalk(Google Talk)
、MSN(Windows Live Messenger)
、Yahoo! Messenger(Yahoo! Chat,又称为雅虎通)
、AIM(AOL Instant Messenger)
、ICQ
、Jabber(支持XMPP协议的聊天服务器)
的用户,可以通过WeBuzz.IM提供的网页界面登录对应的聊天网络,与已有的朋友进行聊天。通过WeBuzz.IM网页版聊天工具,你无需在你本地电脑安装Gtalk、MSN、Yahoo! Messenger、AIM或ICQ等客户端,只需要在浏览器中访问 http://webuzz.im/
,即可查看好友更新,并与朋友轻松聊天。
对于某些没有权限在本地电脑安装各种聊天客户端的用户(譬如在网吧上网的用户)来说,WeBuzz.IM能够帮助他们不安装任何客户端软件即可和他们的朋友联系。
对于那些厌烦了电脑一旦启动就启动数个聊天客户端以致电脑速度慢吞吞的用户来说,WeBuzz.IM实现了一个浏览器窗口多个聊天客户端,大大提升电脑的性能和速度。
对于某些其禁止或封锁了聊天客户端端口的网络用户(譬如在办公室的工作人士、在学校的学生教师或者在银行机构的公务员)来说,WeBuzz.IM使用了普通网页的HTTP 80端口,不会被防火墙封锁,从而依然能够帮助用户登录聊天网络并和他们的朋友保持联系。
为什么已经有成熟的Tomcat Server不用而非得自己写HTTP Server呢?
1. 网页聊天服务需要处理大量的长连接的HTTP请求,也就是Comet连接请求,而现有的Tomcat Server在这方面不算成熟。
2. WeBuzz.IM后台使用了Java2Script
技术的Simple RPC
和Simple Pipe
,Simple RPC/Pipe原来是面对Servlet API的一个封装,但是Servlet API 2.X没有关于Comet连接处理的相关API,而Servlet 3.0 API刚刚成为JSR标准,尚未有成熟稳定的服务器实现。
2. 在写自己的HTTP Server之前,我已经使用Tomcat Server两三年,在大量Comet连接处理方面已经到达了Tomcat服务器的极限。
普通Tomcat Server和基于Java NIO定制的HTTP Comet应用Server有什么区别呢?
普通Tomcat Server基本都是指提供支持Servlet/JSP标准的容器,可以往其中部署对应的Servlet应用。基于Java NIO定制的HTTP Server,不受限于Servlet的API,可以根据NIO的特性和Comet连接的特性结合WeBuzz.IM网页聊天的需求,修改定制,从而能够充分提高单机Serve


相关文档:

Java连接SQL Server数据库

用Java连接SQL Server2000数据库有多种方法,下面介绍其中最常用的两种(通过JDBC驱动连接数据库)。
1. 通过Microsoft的JDBC驱动连接。此JDBC驱动共有三个文件,分别是mssqlserver.jar、msutil.jar和msbase.jar,可以到微软的网站去下载(http://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502-461A- ......

Java Socket套接字应用实例 java学习笔记(1)

为了学习Socket而写的一段小代码..实现客户端和服务端之间的文字通讯功能..
------------------------------------------------------------------------------------------------------------------------------------------------------
客户端实例代码:
public class Client {
public static void startClient() ......

比较全面的Java环境配置

windows xp下配置JDK环境变量:
      1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\java\jdk1.5.0_08;
  2.安装完成后,右击“我的电脑”,点击“属性”;
      3.选择“高级”选项卡,点击“ ......

java 数字证书信息的获取实例 java学习笔记(2)

用java提供的api实现从证书文件(本实例实验对象为*.cer文件)中获取有效信息的方法..
public static X509Certificate getCert(String fileName) throws Exception {//从一个有效的证书文件来创建证书..
InputStream inStream = new FileInputStream(fileName);
CertificateFactory cf = CertificateFactory.get ......

调试Java Web Start

远程调试java web start 用javaw启动程序即可:如下 "D:\tools\jdk6.0\bin\javaws"  -J-Xdebug -J-Xnoagent -J-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5016 d:\login.jsp.jnlp 然后在eclipse里面 建立 远程调试 连到5016端口就可以了。 jnlp文件 自己从服务器上下载下来就好。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号