`

Internal Chat 初体验

阅读更多
       我们公司要开发一个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.)。
二、历史
        略.
三、特点
  1. 即时消息。用户能够发送信息和传送文件。服务器可以设置内部网络,因此你不用担心公网的安全问题
  2. 非常简单的用户和管理员角色
  3. HTTP被做为传输协议使用
  4. 支持SSL
  5. 任意选择消息的接收者
  6. 你可以为每一个消息类型确定模板。例如,你可以确定工作或一些帮助面板(现在可以是一些计划,但是在将来计划把他制作成插件或服务器单元模块)。在系统中通过确定两种消息类型来确定:“文件传送”和普通消息
  7. 添加和删除用户,使之变得可用或不可用,立即显示在所有用。不用用户的相互操作(像在ICQ中添加用户到联系列表中)
  8. 支持用户分组
  9. 用户状态标识(当用户不在他/她的电脑工作是变换用户状态)
  10. 历史记录保存在服务器端,因此用户不会丢失他们的信息
  11. 程序支持多中平台。可以在你喜欢操作系统下运行此程序
  12. 程序将支持国际化。所有的国际化数据被存储在特殊的文件夹中,所以只需要把它翻译成需要的语言。我做了英语和俄语翻译。如果你可以帮我们翻译其它语言-随时通过email联系我们
  13. 还有许多特点

四、截图

  • 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服务运行,提供一些静态内容

    分享到:
    评论
    2 楼 cloudfile 2012-12-17  
    谢谢分享!
    1 楼 fzfx88 2009-09-17  
    能提供个下载吗?

    相关推荐

      Internal Chat (IntChat)-开源

      内部聊天是公司的客户端-服务器聊天(即时消息)应用程序。 它是用Java编写的,因此可以在支持Java的任何平台上运行。 它使用PostgreSQL或MySQL作为DBMS,使用Jetty作为嵌入式HTTP服务器,支持SSL等。

      用internal修饰的类的应用举例

      在C#编程语言中,`internal` 是一个访问修饰符,用于控制类、接口、结构等成员的可见性。这个修饰符主要用于库设计,确保组件内部的类型只能被该组件内的代码访问,而对外部代码隐藏。在本例中,我们将深入探讨 `...

      unix internal device

      unix internal device

      Internal referral and book stationery

      在IT行业中,"Internal referral and book stationery" 这个标题可能是指一个内部推荐系统或者图书文具管理系统,其中涉及到的技术栈包括Extjs、Jawr、Spring和Dwr。这些技术是构建现代Web应用程序的关键组件,让...

      ALSM_EXCEL_TO_INTERNAL_TABLE函数的修改

      【ALSM_EXCEL_TO_INTERNAL_TABLE函数的修改】 在SAP ABAP编程中,ALSM_EXCEL_TO_INTERNAL_TABLE是一个...这种改进对于那些需要处理大量用户输入数据的SAP系统来说,是一种重要的增强,提高了系统的稳定性和用户体验。

      C# Unit Test 访问Internal类型和方法Demo

      这就是`internal`访问修饰符的作用,它允许在同一个程序集内的类访问其成员。当我们需要对使用`internal`修饰的类型和方法进行单元测试时,会遇到一些挑战。本文将深入探讨如何在C#中使用单元测试访问`internal`类型...

      最新版解决反编译INTERNAL ERROR异常的工具.zip

      luyten反编译工具是一款github的开源工具,目前支持.exe、.jar和源代码下载,还是充分的考虑到windows用户了,jd显示INTERNAL ERROR的class文件笔者用这个可以打开,并且设置比jd丰富。

      Nginx提示:500 Internal Server Error错误的解决方法.docx

      Nginx 500 Internal Server Error 错误解决方法 本文总结了 Nginx 中 500 Internal Server Error 错误的原因和解决方法。Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。它可以...

      Phoenix_To_Internal

      诺基亚固件工具,诺基亚书记必备工具xunzai.com_Phoenix_To_Internal

      一键解决:上传失败internal 92260004

      QQ中转站上传文件失败怎么解决!显上传失败:internal,92260004,下载安装此软件即可,完美一键解决方案。

      Microsoft-technet systeminternal tools

      【标题】"Microsoft Technet SystemInternal Tools" 是一个集合了Windows操作系统高级管理工具的资源库,主要用于提升系统管理员对Windows环境的管理和维护能力。这些工具通常由System Internal公司(现已被微软收购...

      bea_wls_internal.war

      此包是本人在修补weblogic漏洞时,http://sn.cloud.ccb.com/bea_wls_internal/classes/META-INF/MANIFEST.MF漏洞实在没办法,试遍网上所有方法,在被逼无奈之下,花了两周研究出来的,就不要想在其他地方找到了,...

      Flex中如何利用videoPlayer属性和mx_internal命名空间,清除VideoDisplay控件内容

      综上所述,通过正确使用`videoPlayer`属性和`mx_internal`命名空间,我们可以有效地清除Flex VideoDisplay控件的内容,提高视频播放效率,从而提升用户体验。但在实际开发中,要权衡代码的可维护性和功能需求,谨慎...

      servo-internal-0.10.1.jar

      servo-internal-0.10.1.jar

      Numerical Computation of INTERNAL AND EXTERNAL FLOWS volume 2

      INTERNAL AND EXTERNAL FLOJiJiS Volume 2: Computational Methods for Inviscid and Viscous Flows CharlesHirsch Departmentof Fluid Mechanics, Vrije Universiteit Brussel, Brussels, Belgium A Wiley-...

      using-internal-css

      这是一篇,internal css基础教学,用它来实现文档中的不同颜色字体

      kie-internal-6.2.0.CR3.zip

      《kie-internal-6.2.0.CR3.zip与Concordion输入样式扩展解析》 在信息技术领域,开源项目一直是推动技术创新的重要力量。本篇文章将深入探讨标题为"kie-internal-6.2.0.CR3.zip"的压缩包以及其中包含的"concordion-...

      mysql官方internal

      mysql官方internal文档,包含对mysql源码解释

    Global site tag (gtag.js) - Google Analytics