Xuanxuan IM

An open source IM resolution.

Website http://xuan.im/
Repository https://github.com/easysoft/xuanxuan
Category Productivity
Keywords im messaging collaboration office
Latest Release v1.3.0 (v1.3.0)
Release Notes

本次更新带来了大家期待的扩展机制,提供了更灵活的方式将你到业务与喧喧进行集成;另外还带来了多个实用功能,包括聊天记录搜索、讨论组解散、按部门或角色分组查看联系人、修改密码等。

新增的暗黑主题,让你的体验焕然一新,快来试试吧!

dark-theme-preview

更新明细

  • 新增 扩展机制:
    • 支持如下类型的扩展:
      • 插件(plugin),扩展喧喧现有的功能;
      • 应用(app),提供将用户自行开发的界面或者网页集成到喧喧中;
      • 主题(theme),提供额外的界面风格供用户切换使用。
    • 用户可以手动安装所需的扩展包(.xext 文件);
    • 内置如下应用扩展:
      • 应用:用于管理用户通过扩展安装的应用;
      • 文件:管理用户在聊天中发送和接收的所有文件;
      • 主题:管理用户通过扩展安装的主题,并切换当前使用的主题外观;
      • 扩展:管理所有已安装的扩展;
    • 内置了一个主题扩展,提供了一款暗黑风格的主题外观;
  • 新增 聊天记录搜索功能,允许限定搜索的聊天类型和时间范围,也可以指定搜索单个聊天的记录,从搜索结果中可以方便的查看搜索的记录在原聊天中的上下文;
  • 新增 联系人列表视图切换功能,支持以平铺(原默认形式)、自定义分组、角色和部门分组查看联系人,自定义分组可以通过拖拽调整分组显示顺序,已删除的用户账号如果之前有聊天历史记录会显示在单独的“已删除”分组中管理,显示当前登录的用户信息在联系人列表上一直显示不再作为配置项;
  • 新增 讨论组会话列表按自定义分组浏览功能,自定义分组可以通过拖拽调整分组显示顺序,被解散的讨论组会话会单独在“已解散”分组中管理;
  • 新增 登录界面记住用户密码和自动登录功能;
  • 新增 在聊天中 @所有人 (或者 @all)的功能;
  • 新增 修改账号密码功能;
  • 新增 管理员从讨论组移除用户功能;
  • 新增 管理员解散讨论组功能,已解散的讨论组在解散后 3 个月内仍然会在单独的分组中显示,支持查看已解散的讨论组消息记录;
  • 优化 聊天邀请成员参与对话框界面,现在支持搜索;
  • 优化 聊天记录同步功能,现在可以按照时间范围进度同步,节省同步时间;
  • 优化 聊天搜索交互方式,当搜索框失去焦点时会隐藏搜索结果,获得焦点时显示搜索结果,增加对快捷键的支持,上下快捷键可以切换选中,按 Enter 键可以直接打开选中的聊天;
  • 优化 个人资料对话框界面,增加对账号角色和部门信息的显示;
  • 优化 聊天列表栏目界面,支持通过拖拽边缘调整栏目宽度;
  • 优化 聊天一对一聊天侧边栏交互,默认不显示,原来显示成员的标签页现在显示对方的个人资料信息;
  • 优化 聊天侧边栏文件列表界面外观;
  • 优化 界面上右键菜单界面和交互动画效果;
  • 优化 @user 提示文本,现在人称代词会依据用户的真实性别决定;
  • 优化 聊天界面,公开讨论组会显示图标代替原来的文字标签,优化了刚打开聊天界面时无法向上滚动的时间;
  • 优化 截图窗口界面,增加使用快捷键退出(ESC)和确认(Enter);
  • 修复 在 Windows 上截图时光标闪烁的问题;
  • 修复 聊天消息显示顺序偶尔不正确的问题;
  • 修复 传送文件时多次收到桌面通知提醒的问题;
  • 修复 通知栏右键菜单退出失效的问题;
  • 修复 登录后没有显示签到提示信息的问题;
  • 修复 浏览器客户端上重复登录被踢出时没有消息提示的问题;
  • 修复 注册全局快捷键发生错误的问题,参见 issue #17
  • 更换了喧喧的 logo;
  • 开发相关:
    • 客户端:
      • 扩展机制:
        • 支持加载开发中的扩展,直接选定开发中的扩展目录中的 package.json 文件即可;
        • 内置扩展开发支持,在 /app/build-in/ 目录下的扩展包会直接打包为内置的扩展,或者直接在�最终打包后的程序目录 resource/build-in 目录下放置扩展目录;
        • 使用 replaceViews 替换喧喧原来的界面组件;
        • 提供了扩展示例:https://github.com/easysoft/xuanxuan/tree/master/examples/extensions
      • Electron 升级到 1.7.0;
      • 新增 通过 Platformlang 对象来覆盖原语言配置文件;
      • 新增 登录界面通过浏览器地址栏参数设置默认的账号和提示信息;
      • 新增 eslint 开发配置来优化代码结构;
      • 修复 VSCode 配置问题;
      • 新增 npm 命令 npm run hot-server-browsernpm run start-browser,方便进行浏览器端开发调试;
      • 优化 webpack 配置文件,现在所以配置文件和开发构建相关文件放置在单独的文件夹中(/build/);
    • 然之服务器端:
      • 新增 chat/dismiss 方法,用于请求解散一个讨论组;
      • 新增 chat/category 方法,用于请求为一个会话设置分组;
      • 优化 chat/usergetlist 方法,增加 idList 参数,可以获取已删除的用户信息,如果不指定 idList 参数会返回部门和角色数据;
      • 优化 chat/login 方法, 会返回当前登录的用户然之地址;
      • 优化 chat/history 方法,增加 startDate 参数,现在可以限定需要获取的消息记录最早日期;
      • 修复 有时一对一聊天消息会发送给所有人的问题。

注意:1.3 增加了大量新的功能,需要服务器也升级到 1.3 才能体验所有内容。

如果你使用1.3版客户端登录1.2的服务器,可能会存在无法修改密码和发送消息失败的问题。由于内置1.3版喧喧服务器等然之还没发布,你需要自己手动升级然之的喧喧服务器到1.3版本。参见如下步骤:

  1. 升级 xxd 服务器,下载和部署参见:http://xuan.im/page/2.html
  2. 下载然之1.3的喧喧扩展包,复制并合并到然之站点根目录;
  3. 升级数据库,在然之数据库执行:
ALTER TABLE `im_message` ADD `order` mediumint(8) unsigned NOT NULL AFTER `date`;
ALTER TABLE `im_message` ADD `data` text NOT NULL DEFAULT '' AFTER `contentType`;
ALTER TABLE `im_chatuser` ADD `category` varchar(40) NOT NULL DEFAULT '' AFTER `quit`;
ALTER TABLE `im_chat` ADD `dismissDate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `lastActiveTime`;

下载地址:

喧喧

http://xuan.im

然之协同提供的面向企业即时通信解决方案。

官方 QQ 群:367833155 了解项目和计划:http://xuan.5upm.com/product-browse-1.html

喧喧

最近更新

🎉 1.3 版本带来了大家期待的扩展机制,提供了更灵活的方式将你到业务与喧喧进行集成;另外还带来了多个实用功能,包括聊天记录搜索、讨论组解散、按部门或角色分组查看联系人、修改密码等。

🎉 扩展机制内置的暗黑主题,让你的体验焕然一新,快来试试吧!

喧喧

特色功能

  • 开聊:和服务器上的任何用户开聊,收发表情、图片、截屏、文件样样在行;
  • 开源安全:源码开放,客户端和服务器通信全程加密,安全可靠;
  • 讨论组和公开讨论组:一个人讨论的不过瘾?随时邀请多人组建个性讨论组,将讨论组公开,任何感兴趣的人都可以加入进来;
  • 通知及提醒:与系统桌面环境集成,即时收到新消息通知;
  • 会话管理:将任意会话(包括讨论组和公开讨论组)置顶,精彩内容不容错过,还可以重命名讨论组、为讨论组设置白名单及浏览会话的所有消息历史记录;
  • 通讯录:浏览企业成员资料和联系信息;
  • 跨平台客户端:目前已支持 Windows、Linux、Mac,并且还提供了浏览器客户端;
  • 轻量级服务器端:轻松搭配然之协同使用。

使用

桌面客户端

受益于 Electron 的跨平台特性,喧喧客户端提供了 Windows、MacOS 和 Linux 版本。

下载地址见:http://xuan.im/#downloads

更多帮助参见 官方客户端使用指南

浏览器客户端

浏览器客户端试用请访问:https://easysoft.github.io/xuanxuan/1.2.0/

注意:你需要为你的服务器端部署通过官方验证的证书才可以使用浏览器端客户端。

更多帮助参见 浏览器端部署和使用指南

服务器端

客户端主要通过 WebSocket 协议与服务器端进行实时通信,另外还用到了 https 协议来从服务器获取配置及上传下载文件。

+------------+                 +------------+            +----------------+
|  Xuanxuan  |---------------->|  Xuanxuan  |----------->|   Rangerteam   |
|   Client   | WebSocket/Https |   Server   | Http/Https |     Server     |
|  (PC/Mac)  |<----------------|   (xxd)    |<-----------| (Your Website) |
+------------+                 +------------+            +----------------+

客户端与服务器端 API 参考:API 文档。服务器端 API 同样是开放的,你可以使用自己熟悉的技术(例如 node.js、go、swift)实现自己的服务器端。

官方默认的服务器使用 go 语言实现(简称为 xxd 服务),你可以在 /server/xxd/ 目录下找到源代码。xxd 服务提供了 WebSockethttps 接口供客户端使用。

xxd 服务本身并不存储和管理用户资料和消息数据,而是使用应用更为广泛的 http 协议与另一个服务器(简称 http 服务)通信。这样你只需要在你自己的网站上开发一系列 http 接口即可为你的网站用户启用喧喧。

官方默认提供的 http 服务是基于开源协同办公软件 然之协同 开发,你可以在 /server/ranzhi/ 目录下找到相关源代码。然之协同服务器部署请参考:服务器部署指南

这里有一个公开的测试服务器供使用:

地址:https://demo.ranzhi.org
用户:demo
密码:demo

或用户:demo1, demo2, ... demo10
密码:123456

注意:测试服务器不能使用传送文件功能。

客户端开发

客户端主要使用的技术为 Webpack + Electron + React。使用下面的步骤快速进入开发状态:

  1. 下载源码:git clone https://github.com/easysoft/xuanxuan.git
  2. 在源码目录执行:npm install
  3. 启动 react hot server,执行:npm run hot-server
  4. 启动客户端,执行:npm run start-hot

执行 npm run package 进行客户端打包。

详情请参考:客户端开发者指南

扩展开发

参见:https://github.com/easysoft/xuanxuan/blob/master/doc/extension.md

许可证

喧喧使用 ZPL 开源许可证,另外还使用了如下开源项目:

Something missing? Edit this app.