如何部署一套完全私有的即时通讯系统

5,640 阅读2分钟

背景

基于各种各样的原因,有的时候,我们需要一套完全私有的即时通讯系统,本文就介绍一下,如果如何部署一套自己管理的私有即时通讯系统。

最终效果预览

图片

系统要求

  1. Linux 主机, 需要在防火墙或者安全组里面等开通 80、1883、8888端口,由于 80 端口是非常常用的端口,一定要确保没有被其他软件占用。
  2. JRE 1.8.x

部署 IM Server

  1. 确定 Java 版本 执行java -version,如果输出jdk version "1.8.x"字样,则说明 Java 环境安装成功
  2. 下载最新发布的的IM Server软件包 到服务器imserver目录
  3. 解压并修改配置 0. 进入imserver目录
    1. 执行tar -zxvf distribution-0.86-bundle-tar.tar.gz 解压IM Server安装包,步骤1中下载的文件名,可能和命令里面的不一致,需要做对应修改。
    2. 修改config/wildfirechat.conf文件,将server.ip修改为本机的公网 ip
  4. 启动IM Server 执行nohup sh ./bin/wildfirechat.sh 2>&1 & 启动IM Server
  5. 验证IM Server是否部署成功
    1. 服务器执行curl localhost/api/version,如果能看到输出IM Server的版本信息等,说明部署成功
    2. 在自己电脑浏览器输入:http://${服务器公网ip}/api/version,查看IM Server版本信息,如果能看到说明部署成功;如果看不到,而上一步中可以看到,说明没有开放相应的端口

      上面命中服务器公网ip 需要进行替换,最终命令类似http://1.1.1.1/api/version

部署 App Server

  1. 下载最新发布的App Server软件包appserver目录
  2. 解压
    1. 进入appserver目录
    2. 执行tar -zxvf app-server-release-0.57.tar.gz 解压App Server,步骤1中下载的文件名,可能和命令里面的不一致,需要做对应修改。
  3. 启动App Server 执行nohup java -jar app-0.0.1-SNAPSHOT.jar 2>&1 &启动App Server
  4. 验证
    1. 服务器执行curl localhost:8888/,如果能看到输出ok,说明部署成功
    2. 在自己电脑浏览器输入:http://${服务器公网ip}:8888/,查看 是否输出ok,如果能看到说明部署成功;如果看不到,而上一步中可以看到,说明没有开放相应的端口

      上面命中服务器公网ip 需要进行替换,最终命令类似http://1.1.1.1:8888/

编译 Android

  1. 下载Android 端最新代码
  2. 解压并修改配置
    1. AppService.java中的APP_SERVER_ADDRESS修改为http://${服务器公网ip}:8888
    2. Config.java中的IM_SERVER_HOST修改为服务器公网ip
  3. 编译运行 填入手机号,验证码填写66666

进一步

更多玩法,请参考Docs

参考

本文所提到的项目如下,都是开源的,感兴趣的小伙伴可以去关注关注。

  1. IM Server: im-server
  2. App Sever: app-server
  3. Android 端:android-chat