我们公司要开发一个CS结构的聊天软件,所以我想找一个开源的chat软件学习学习,不要太复杂的,于是就找到了Internal chat。网上除其主站外,没有任何资料。于是我把自己学习时翻译出的资料拿来共享一下(不一定翻译的完全准确)
。
现在这个软件在我电脑上已经可以使用了,功能比较少,但是适合学习。
Internal Chat 初体验
Internal Chat是一个包括服务器端与客户端的即时消息聊天系统。Internal Chat完全采用Java开发,使用PostgreSQL作为DBMS,Jetty作为内嵌http服务器,支持SSL等。
官方网站:http://www.avoware.com/intchat/
一、描述
Internal Chat是一个包括服务器端与客户端的即时消息聊天系统。Internal Chat完全采用Java开发,因此它可以运行在任何支持java的平台上(MS Windows, Linux, xBSD, Solaris 等等)
Internal Chat 采用开放的工业协议,它通过HTTP/HTTPS协议,采用了AJAX请求的强大功能和开放的数据库管理系统(例如:PostgreSQL 和 MySQL.)。
二、历史
略.
三、特点
- 即时消息。用户能够发送信息和传送文件。服务器可以设置内部网络,因此你不用担心公网的安全问题
- 非常简单的用户和管理员角色
- HTTP被做为传输协议使用
- 支持SSL
- 任意选择消息的接收者
- 你可以为每一个消息类型确定模板。例如,你可以确定工作或一些帮助面板(现在可以是一些计划,但是在将来计划把他制作成插件或服务器单元模块)。在系统中通过确定两种消息类型来确定:“文件传送”和普通消息
- 添加和删除用户,使之变得可用或不可用,立即显示在所有用。不用用户的相互操作(像在ICQ中添加用户到联系列表中)
- 支持用户分组
- 用户状态标识(当用户不在他/她的电脑工作是变换用户状态)
- 历史记录保存在服务器端,因此用户不会丢失他们的信息
- 程序支持多中平台。可以在你喜欢操作系统下运行此程序
- 程序将支持国际化。所有的国际化数据被存储在特殊的文件夹中,所以只需要把它翻译成需要的语言。我做了英语和俄语翻译。如果你可以帮我们翻译其它语言-随时通过email联系我们
- 还有许多特点
四、截图
- User's details
- Entry point to administration
- Files tab
- Common messages tab
- IntChatClient Connection Manager
五、系统需求
1、Servier
- 安装java jdk 1.5+
- PostgreSQL (没有版本要求) ,或者 MySQL v.4.1+ (必须支持编码集UTF8)
- 服务器端必须有足够的RAM(如果你(ˇˍˇ) 想~保持120-150的连接,硬件要求P4 3GHz, 2GB RAM.,4GB推荐)。
2、Client
[list]
- 带有java和图型化桌面。
- 对硬件没有特别要求,推荐内存512M+
六、安装:
1、数据库:(以MySQL为例)
- 支持PostgreSQL和MySQL,确保MySQL版本支持UTF8字符集。
- 建立特定数据库
1、创建无权限数据库用户(比如ICUSER)
2、创建空数据库(比如IC), 字符集必须是UFT8.
3、把IC的读写权限付给ICUSER,或者配置ICUSER为IC的owner。
- 下载Server包(IntChatServer-X.Y.Z.zip)
1、download:http://sourceforge.net/project/showfiles.php?group_id=209007
2、解压到任何位置,从子文件夹 init_sql中找到数据库初始化脚本 PostgreSQL:init_database_ic_postgresql.sql; MySQL:init_database_ic_mysql.sql
- 初始化数据库IC。
2、Server
[list]
下载 server package (IntChatServer-X.Y.Z.zip) download:http://sourceforge.net/project/showfiles.php?group_id=209007
解压到任意路径
运行 /IntChatServer-X.Y.Z/run.cmd纠正javaw.exe 路径。
打开/IntChatServer-X.Y.Z/conf/Server.xml至少修改一下参数: (1)FileSpool:internal chat 引入文件的保存路径,默认/IntChatServer-X.Y.Z/spool
(2)数据库访问参数:
例如:
<!-- MySQL -->
<JDBCDriver>com.mysql.jdbc.Driver</JDBCDriver>
<DBHost>localhost</DBHost>
<DBPort>3306</DBPort>
<DBUseSSL>false</DBUseSSL>
<DBName>ic</DBName>
<DBUser>ICUSER</DBUser>
<DBPassword>000000</DBPassword>
(3)运行IntChatServer-X.Y.Z/run.cmd启动server。通过log文件(/ IntChatServer-X.Y.Z/logs)检测server是否启动正常。
应用SSL (1)通过IBM's KeyMan tool 或者command line tool 生成Java Key Store (JKS),例如my.jks
(2)把JKS-file (my.jks)放入/IntChatServer-X.Y.Z/conf 中。
(3)配置server.xml (/IntChatServer-X.Y.Z/conf/Server.xml)
<UseSSL>true</UseSSL>
<!-- KeyStore 路径-->
<KeyStore>./conf/MY.jks</KeyStore>
<InputKeyStorePassword>******</InputKeyStorePassword>
<OutputKeyStorePassword>******</OutputKeyStorePassword>
[/list]
3、Client
Installation::Client
- 下载client package(IntChatClient-X.Y.Z.zip)。
- 解压到任意位置
- 运行 / IntChatClient-X.Y.Z/run.cmd纠正javaw.exe 路径。
- 运行 run.cmd 启动客户端。
Installation::Client::Deployment using Java Web Start
- 我们认为最好的最方便的部署Internal Chat 客户端的方式是使用Java Web Start.
- 你只要搭建好JRE,其余的工作Java Web Start都会完成。
- 从Internal Chat服务端5.6.0版本运行用来部署的JNLP-file
- 安装并且运行Internal Chat服务端。默认设置监听主机intchat.mydomain,端口6556,SSL激活状态(也就是使用HTTPS,不是HTTP)
- 确定JRE已经安装在客户端电脑上
- 用浏览器访问这个URL地址:https://intchat.mydomain:6556/webstart/IntChatClient.jnlp
- 也就是刚才请求访问的Internal Chat服务页面
- webstart/IntChatClient.jnlp
- 由于JNLP是自主的文件类型,通常Java Web Start自动运行。如果没有,检查你系统中的数据库
- Java Web Start第一次从Internal Chat服务端下载客户端JAR,然后如果你确认有Andrew Orlov的认证,做请求操作。也就是(Java 安全请求的必要条件-为了运行所有通过Java Web Start从互联网上下载的JAR文件,必须标识可信的发行者)。点击YES,否则客户端不能被运行。
- 下次,再客户端没有变化的前提下,Java Web Start将不会下载客户端包。
- 像往常一样使用客户端
背景
客户端包被存放在服务端的webstart子文件夹下。如果发布新版本的Internal Chat 客户端,只要更新新的客户端包,Java Web Start将自动更新到客户端电脑(当然如果你是通过上面的JNLP链接运行的客户端)。既然这样Internal Chat服务端作为普通的HTTP服务运行,提供一些静态内容