喧喧 1.1.1 发布,集成然之签到

炒蚕豆吃蹦豆
 炒蚕豆吃蹦豆
发布于 2017年05月09日
收藏 56

喧喧是由然之协同团队推出的一款轻量级的开源企业聊天软件。喧喧官网:http://xuan.im/

喧喧的定位

喧喧定位是企业内部的轻量级的聊天软件。为了让喧喧足够轻量级,客户端软件使用了html5的技术,服务器端使用了go语言。喧喧以文字和图片交流为主,不提供语音、视频和远程控制等功能(这些QQ已经足够好了)。喧喧可以当作协同软件的一个延伸和补充。

特色功能

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

下载地址

服务器端

客户端主要通过 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 服务提供了 WebSocket和 https 接口供客户端使用。

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

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

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

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

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

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

界面截图

喧喧主界面


喧喧服务器运行界面

主界面主要由垂直功能导航和功能区域组成。

点击会话菜单标签页上的创建会话按钮,打开创建会话对话框。

Emoji 表情符图片资源升级到 Emoji one 3.0。


通过点击文件或图片按钮从系统中选择要发送的图片或文件。也可以直接从系统文件管理器中拖放文件到当前聊天窗口进行发送。


点击会话窗口顶部工具栏上的侧边栏按钮可以打开会话的侧边栏界面。在侧边栏上可以看到参与此会话的所有人员及会话中收发的文件。


增加个人设置功能,可以在用户头像下拉菜单中打开个人设置面板。

喧喧1.1.1 版本,集成然之签到优化细节

本次更新集成了然之的签到功能,对客户端界面进行了大量交互细节优化,并且处理社区反馈的大量问题。现在最新发布的然之 4.2.2 已内置喧喧最新版本,大家无需在为然之安装扩展。喧喧还启用了全新的域名 xuan.im,欢迎大家访问网站了解更多内容。

更新明细:

  • 客户端

    • 修复了第一次启动调试时等待时间过长的问题,移除了首次运行自动安装 React 扩展策略;

    • 增加用户个人配置云同步功能,在登录时会从服务器获取客户端配置,退出时上传个人配置到服务器;

    • 现在会记住用户上次保存文件的位置,在打开保存位置对话框时会自动定位到用户上次保存的位置;

    • 在上传文件之前会先检查服务器设置的最大允许上传文件大小,如果不符合要求会提示用户并拒绝上传文件;

    • 修复上传或下载文件,服务器提示错误没有捕捉到的问题;

    • 用户当天第一次登录时会提示签到成功的消息;

    • 更改导航上项目顺序,现在讨论组排在联系人上方;

    • 最近会话不再是可选的(已经从设置面板中移除设置),首次启动时会默认显示最近会话;

    • 当最近会话没有在导航上激活时,如果当前会话收到消息或着向外发送了消息会自动激活最近会话;

    • 当激活一个包含新消息的会话时会自动滚动到消息列表的底部(如果在之前滚动位置发生过变化);

    • 优化导航下拉菜单界面,去掉“离线”条目,增加“注销”条目;

    • 优化会话和联系人搜索功能,现在当在联系人列表时只会在联系人会话中查找,当在讨论组列表时只在讨论组中查找,最近会话列表中可以查找所有会话;

    • 修复第一次使用时没有在导航上定位到最近会话的问题;

    • 调整了系统会话在讨论组列表上的显示顺序,现在系统会话会显示在除加星会话的上方;

    • 优化了会话底部工具栏上的图标外观,增加更改字体大小图标按钮,点击按钮会弹出面板来实时更改字体大小,更改会话字体大小功能不再在会话下拉菜单中提供访问入口;

    • 调整了默认会话字体设置,现在文字的行间距更适合阅读;

    • 现在在消息发送框“@他人”时,默认显示用户真实姓名;

    • 修复无法显示消息中的空白行的问题;

    • 修复有用户推出讨论组时,讨论组消息短暂消失的问题;

    • 会话侧边栏文件列表中不再显示发送失败的文件,移除了文件列表中的图标,修复了有时文件名无法显示完整的问题,修复了文件列表无法自动更新的问题;

    • 修复了会话侧边栏上的成员列表在有用户退出时没有正确刷新的问题,修复了一对一会话也显示管理员标志的问题;

    • 调整会话侧边栏最小宽度;

    • 现在请求退出应用时(点击关闭按钮或者在通知栏图标上选择退出),会立即关闭主界面而不是先显示登录界面再退出;

    • 当服务器连接超时时,会在客户端上显示提示消息;

    • 优化新建会话对话框中联系人排列顺序;

    • 优化 Windows 上用户个人设置对话框操作按钮显示顺序;

    • 优化在 Windows 上任务栏高亮闪烁提示功能,现在会一直高亮,直到窗口被激活;

    • 优化关于对话框上的内容显示;

    • 优化界面上工具提示显示的动画效果;

    • 优化了界面上的文本,更符合语义;

    • 开发支持:

  • xxd 服务器

    • 增加了xxd到然之服务器和客户端的通信容错处理;

    • 增加了默认然之服务器的设置,客户端登录不填写服务器名称时xxd使用默认设置;

    • 增加了限制附件上传大小的配置;

  • 然之服务器

    • 加解密功能优先使用 openssl 扩展,其次选择 mcrypt 扩展,两者都未启用时使用内置纯 PHP 实现的 AES 加密类库;

    • 喧喧登录和然之签到集成,可以在然之中设置只能通过喧喧签到;

    • 然之内置对喧喧 1.1.1 的支持,现在使用最新版然之(4.2.2+)不再需要为然之安装喧喧扩展包;

    • 修复新系统安装后没有系统会话(包含系统所有成员的讨论组)的问题;

    • 然之升级时检测喧喧版本,并自动升级喧喧;

    • 可以在然之后台设置和xxd通信需要的密钥;

  • 网站和文档

喧喧1.1 版本,服务器端使用go重构

喧喧1.1版本更新大幅改进客户端界面交互体验,增加会话和联系人搜索功能,优化表情显示,增加个人设置面板,轻松定制消息提醒方式和窗口界面行为。

服务器进行了重大改进:增加全新的 go 语言实现的服务器(xxd),全程使用 AES 加密消息,通过 WebSocket 和 https 与客户端通信,使用 http 或 https 与然之服务器或你的网站进行通信。重构了然之服务器(现在然之服务器仅提供 http 接口)。客户端仍然支持 1.0 版的服务器,需要在登录框填写服务器地址时添加#v1.0后缀。

更新明细:

  • 客户端:

    • 修复了在 Windows 平台上的 VSCode 执行调试任务失败的问题;

    • 重构了导航布局,现在头像默认在下方显示(可以在个人设置中更改),去掉了导航折叠和展开功能,原会话和通讯录标签改为最近聊天(最近聊天可以在个人设置中关闭)、联系人和讨论组;

    • 全新的会话列表功能,可以按照最近聊天、联系人和讨论组分别查看对应的会话,原通讯录功能已合并到联系人会话列表,优化了会话列表界面,现在更易于区分收藏的会话或离线联系人会话,公开频道现在更名为公开讨论组;

    • 增加会话搜索功能,并支持使用用户联系方式、拼音全拼或简拼进行搜索;

    • 增加个人设置功能,可以在用户头像下拉菜单中打开个人设置面板,方便用户个性化聊天、通知、导航、窗口及快捷键等多个设置选项;

    • 优化所以对话框中操作按钮的显示顺序,现在会根据运行平台使用符合用户操作系统习惯的顺序显示;

    • 重构了表情选择面板,现在能够选择全部 Emoji 表情,并支持搜索表情(需要中个人设置中开启表情搜索功能),表情符图片资源已升级到 Emoji one 3.0;

    • 新建讨论组时会提示为讨论组设置名称;

    • 会话侧边栏现在支持通过拖拽边缘来调整宽度,并且会自动保存侧边栏状态到用户配置;

    • 讨论组会话会在初始状态下自动显示侧边栏;

    • 优化侧边栏上的用户列表显示顺序,现在优先显示管理员用户和在线用户;

    • 消息发送框中的表情快捷代码会自动转换显示为表情符,如果消息发送框中只包含一个表情符会自动使用高清表情图片发送(可以在个人设置中关闭),在消息框中输入的所有 emoji unicode 字符会中发送之前自动转换为快捷代码以防止服务器不支持特殊字符;

    • 消息发送框中输入 @用户 会自动高亮显示用户名称并支持点击查看用户资料;

    • 优化会话消息列表界面,高亮显示提到(@me)自己的字符,消息中的表情符边缘会更加突出易于辨认,现在复制消息列表中的消息不会中复制的内容中包含时间文本;

    • 现在全局截图后会将图片放置在剪切版;

    • 现在允许关闭消息框小技巧提示按钮(可以在个人设置中重新开启);

    • 点击侧边栏用户列表上的用户默认操作为在消息发送框中 @此用户;

    • 优化消息中包含一级或二级标题格式文本的显示,现在会以更易于阅读的样式显示;

    • 修复了中消息中以代码发送 <、 > 会被转码的问题;

    • 优化了消息中的代码显示样式;

    • 修复在 Windows 上复制消息并粘贴到消息发送框自动在首尾添加空格的问题;

    • 修复会话消息历史记录中链接点击出现界面空白的问题;

    • 修复新建会话时查找公开会话失败的问题(issue #6);

    • 修复了有时退出应用没有保存用户配置的问题;

    • 修复了有时没有正确下载用户头像的问题;

    • 修复了有时退出应用没有向服务器发送 chat/logout 事件;

    • 增加了新的个人设置当主窗口失去焦点时自动最小化窗口;

    • 客户端运行文件名更改为英文名称;

    • 优化了喧喧界面及应用图标,现在看起来更正;

    • 开发支持:

  • 然之服务器端:

    • 抛弃了基于 PHP 的 socket 实现,所有 API 全部使用 http 实现,配合 xxd 服务器与客户端通信;

  • xxd 服务器:

    • 新的 xxd 服务与客户端通过 WebSocket 和 https 进行通信,通过 https 或 http 与然之服务器端通信。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:喧喧 1.1.1 发布,集成然之签到
加载中

精彩评论

开源春哥
开源春哥

引用来自“jun4rui”的评论

你们这个没有移动版吗?移动沟通很重要的哦
喧喧刚发布没多久。先把基础的东西做好。移动的后续会加上。

最新评论(20

开源春哥
开源春哥

引用来自“开源春哥”的评论

喧喧这次改动比较大,消息处理增加了一个xxd(go实现)的服务,用来做消息的转发和附件的管理。后端消息业务逻辑的处理采用HTTP协议和后端的系统进行交互。go的跨平台性和并发保证了消息的吞吐量,B/S架构的消息处理又可以方便开发者进行自己的业务逻辑开发。

引用来自“红白机”的评论

从原来的PHP socket换成GO,这样我们是不是又要多学习一下GO语言?感觉好累啊

引用来自“开源春哥”的评论

你应该换个角度想,哇,又有一个很好的例子可以学习了。
莫那么多的牢骚,思维的角度很重要。

引用来自“红白机”的评论

话虽如此,作为一个技术人,确实应该不断学习。只是刚刚部署上去,现在又要重搞一次。😣

引用来自“开源春哥”的评论

你牢骚太多了。我们花了一个多月重构,我们都没说麻烦,你有什么可抱怨的?

引用来自“FecShop”的评论

回复@开源春哥 : go弥补php,很不错,搭配起来可以干很多事情,最近在学go语言
:),对。go的跨平台性,无依赖,并发方面都很适合喧喧的应用场景。我们团队也是最近来了一位go的攻城狮,所以果断的换成go啦。如果不做开源软件的话,用php的swoole做也是可以的。但做开源软件,windows下面的用户就要考虑了。这方面go有天生的优势。
FecShop
FecShop

引用来自“开源春哥”的评论

喧喧这次改动比较大,消息处理增加了一个xxd(go实现)的服务,用来做消息的转发和附件的管理。后端消息业务逻辑的处理采用HTTP协议和后端的系统进行交互。go的跨平台性和并发保证了消息的吞吐量,B/S架构的消息处理又可以方便开发者进行自己的业务逻辑开发。

引用来自“红白机”的评论

从原来的PHP socket换成GO,这样我们是不是又要多学习一下GO语言?感觉好累啊

引用来自“开源春哥”的评论

你应该换个角度想,哇,又有一个很好的例子可以学习了。
莫那么多的牢骚,思维的角度很重要。

引用来自“红白机”的评论

话虽如此,作为一个技术人,确实应该不断学习。只是刚刚部署上去,现在又要重搞一次。😣

引用来自“开源春哥”的评论

你牢骚太多了。我们花了一个多月重构,我们都没说麻烦,你有什么可抱怨的?
回复@开源春哥 : go弥补php,很不错,搭配起来可以干很多事情,最近在学go语言
开源春哥
开源春哥

引用来自“开源春哥”的评论

喧喧这次改动比较大,消息处理增加了一个xxd(go实现)的服务,用来做消息的转发和附件的管理。后端消息业务逻辑的处理采用HTTP协议和后端的系统进行交互。go的跨平台性和并发保证了消息的吞吐量,B/S架构的消息处理又可以方便开发者进行自己的业务逻辑开发。

引用来自“红白机”的评论

从原来的PHP socket换成GO,这样我们是不是又要多学习一下GO语言?感觉好累啊

引用来自“开源春哥”的评论

你应该换个角度想,哇,又有一个很好的例子可以学习了。
莫那么多的牢骚,思维的角度很重要。

引用来自“红白机”的评论

话虽如此,作为一个技术人,确实应该不断学习。只是刚刚部署上去,现在又要重搞一次。😣
你牢骚太多了。我们花了一个多月重构,我们都没说麻烦,你有什么可抱怨的?
红白机
红白机

引用来自“开源春哥”的评论

喧喧这次改动比较大,消息处理增加了一个xxd(go实现)的服务,用来做消息的转发和附件的管理。后端消息业务逻辑的处理采用HTTP协议和后端的系统进行交互。go的跨平台性和并发保证了消息的吞吐量,B/S架构的消息处理又可以方便开发者进行自己的业务逻辑开发。

引用来自“红白机”的评论

从原来的PHP socket换成GO,这样我们是不是又要多学习一下GO语言?感觉好累啊

引用来自“开源春哥”的评论

你应该换个角度想,哇,又有一个很好的例子可以学习了。
莫那么多的牢骚,思维的角度很重要。
话虽如此,作为一个技术人,确实应该不断学习。只是刚刚部署上去,现在又要重搞一次。😣
开源春哥
开源春哥

引用来自“jun4rui”的评论

你们这个没有移动版吗?移动沟通很重要的哦

引用来自“开源春哥”的评论

喧喧刚发布没多久。先把基础的东西做好。移动的后续会加上。

引用来自“jun4rui”的评论

另外如果有移动端,希望能和设备的消息推送做好一些。
移动端后续我们会加上。:)
开源春哥
开源春哥

引用来自“jun4rui”的评论

你们这个没有移动版吗?移动沟通很重要的哦

引用来自“开源春哥”的评论

喧喧刚发布没多久。先把基础的东西做好。移动的后续会加上。

引用来自“jun4rui”的评论

另外我想问一下,我粗略的看了一眼,似乎没找到和其它系统的接口,如果要同步用户的话,似乎要直接写数据库了?
xxclient -> xxdaemon -> backend
客户端将消息发送到xxd,xxd通过http协议将消息转发到后端的应用。我们现在后端的应用是和我们的然之OA系统集成在一起的。你可以换成自己的系统。api接口都有定义,还是比较简单的。
jun4rui
jun4rui

引用来自“jun4rui”的评论

你们这个没有移动版吗?移动沟通很重要的哦

引用来自“开源春哥”的评论

喧喧刚发布没多久。先把基础的东西做好。移动的后续会加上。
另外如果有移动端,希望能和设备的消息推送做好一些。
jun4rui
jun4rui

引用来自“jun4rui”的评论

你们这个没有移动版吗?移动沟通很重要的哦

引用来自“开源春哥”的评论

喧喧刚发布没多久。先把基础的东西做好。移动的后续会加上。
另外我想问一下,我粗略的看了一眼,似乎没找到和其它系统的接口,如果要同步用户的话,似乎要直接写数据库了?
开源春哥
开源春哥

引用来自“开源春哥”的评论

喧喧这次改动比较大,消息处理增加了一个xxd(go实现)的服务,用来做消息的转发和附件的管理。后端消息业务逻辑的处理采用HTTP协议和后端的系统进行交互。go的跨平台性和并发保证了消息的吞吐量,B/S架构的消息处理又可以方便开发者进行自己的业务逻辑开发。

引用来自“红白机”的评论

从原来的PHP socket换成GO,这样我们是不是又要多学习一下GO语言?感觉好累啊
你应该换个角度想,哇,又有一个很好的例子可以学习了。
莫那么多的牢骚,思维的角度很重要。
红白机
红白机

引用来自“开源春哥”的评论

喧喧这次改动比较大,消息处理增加了一个xxd(go实现)的服务,用来做消息的转发和附件的管理。后端消息业务逻辑的处理采用HTTP协议和后端的系统进行交互。go的跨平台性和并发保证了消息的吞吐量,B/S架构的消息处理又可以方便开发者进行自己的业务逻辑开发。
从原来的PHP socket换成GO,这样我们是不是又要多学习一下GO语言?感觉好累啊
返回顶部
顶部