Rocket.Chat 桌面应用
基于Electron开发的Rocket.Chat桌面应用,支持macOS、Windows和Linux系统。
与我们互动
分享您的故事
我们很乐意听到[您的体验][],并可能在我们的[博客][]上展示。
订阅更新
我们的营销团队每月会发布一次电子邮件更新,包含产品发布、公司相关话题、活动和使用案例的新闻。[立即注册!][]
下载
您可以从[发布页面][]下载最新版本。
安装
启动安装程序并按照指示进行安装。
Windows 选项
在Windows上,您可以通过添加/S
标志进行静默安装。您还可以添加以下选项:
/S
- 静默安装/allusers
- 为所有用户安装(需要管理员权限)/currentuser
- 仅为当前用户安装(默认)/disableAutoUpdates
- 禁用自动更新
开发
快速开始
前提条件:
现在只需克隆并启动应用:
git clone https://github.com/RocketChat/Rocket.Chat.Electron.git
cd Rocket.Chat.Electron
yarn
yarn start
项目结构
源代码位于src
文件夹中。使用yarn start
运行应用时,此文件夹中的所有内容都将自动构建。
构建过程会编译src
文件夹中的所有内容并将其放入app
文件夹,因此构建完成后,您的app
文件夹将包含完整的可运行应用程序。
TypeScript
遵循[Rocket.Chat代码库的持续变更][],该应用已使用TypeScript 4重写,以解决可维护性问题。
构建流程
构建过程基于rollup打包工具。您的代码有三个入口文件:
-
src/main.ts
,在主Electron进程中运行的脚本,用于协调整个应用程序; -
src/rootWindow.ts
,用于渲染根窗口(应用程序的主窗口)UI的脚本; -
src/preload.ts
,在特权模式下运行,用于连接应用程序和渲染Rocket.Chat网页客户端的webview。
添加Node.js模块
请注意区分package.json
文件中的dependencies
和devDependencies
。只有列在dependencies
中的模块才会被包含在可分发的应用程序中。
故障排除
node-gyp
请按照[node-gyp自述文件][]中的安装说明进行操作。
Ubuntu
您需要安装以下软件包:
build-essential
libevas-dev
libxss-dev
Fedora
您需要安装以下软件包:
libX11
libXScrnSaver-devel
gcc-c++
Windows 7
在Windows 7上,您可能需要按照[node-gyp安装指南]的选项2进行操作,并安装Visual Studio。
测试
单元测试
yarn test
我们使用Jest测试框架和Jest electron runner。它会搜索src
目录中所有匹配*.(spec|test).{js,ts,tsx}
通配模式的文件。
发布版本
要将应用打包成安装程序,请使用以下命令:
yarn release
这将开始为您运行此命令的操作系统进行打包过程。可分发的文件将输出到dist
目录。
所有打包操作都由electron-builder处理。它有很多[自定义选项][]。
默认服务器
servers.json
文件定义了客户端将连接的服务器,并将填充侧边栏中的服务器列表。它包含一个默认服务器列表,这些服务器将在用户首次运行应用程序时(或当所有服务器从列表中删除时)添加。
文件语法如下:
{
"Demo Rocket Chat": "https://demo.rocket.chat",
"Open Rocket Chat": "https://open.rocket.chat"
}
预发布配置
您可以将servers.json
与安装包捆绑在一起,该文件应位于项目应用程序的根目录(与package.json
同级)。如果找到该文件,将跳过初始的"连接到服务器"屏幕,并尝试连接到数组中定义的第一个服务器,直接将用户带到登录界面。请注意,只有在尚未添加其他服务器的情况下才会检查servers.json
,即使您卸载应用程序而不删除旧的首选项,它也不会再次触发。
安装后配置
如果你无法(或不想)将文件打包到应用程序内,你可以在用户首选项文件夹中创建一个servers.json
文件,它将覆盖打包的文件。该文件应位于%APPDATA%/Rocket.Chat/
文件夹中,或者在为所有用户安装的情况下,位于安装文件夹中(仅限Windows)。
对于Windows,完整路径是:
~\Users\<用户名>\AppData\Roaming\Rocket.Chat\
~\Program Files\Rocket.Chat\Resources\
在macOS上,完整路径是:
~/Users/<用户名>/Library/Application Support/Rocket.Chat/
/Library/Preferences/Rocket.Chat/
在Linux上,完整路径是:
/home/<用户名>/.config/Rocket.Chat/
/opt/Rocket.Chat/resources/
覆盖设置
你可以通过在用户首选项文件夹中创建一个overridden-settings.json
文件来覆盖用户设置。
该文件应位于%APPDATA%/Rocket.Chat/
文件夹中,或者在为所有用户安装的情况下,位于安装文件夹中(仅限Windows)。
文件中设置的每个设置都将覆盖默认和用户设置。然后你可以使用它来禁用默认功能,如自动更新,甚至创建单服务器模式。
可以被覆盖的设置有:
设置 | 描述 |
---|---|
"isReportEnabled": true, | 设置是否向开发者报告错误。 |
"isInternalVideoChatWindowEnabled": true, | 设置视频通话是否在内部窗口中打开。 |
"isFlashFrameEnabled": true, | 设置是否启用闪烁框架。 |
"isMinimizeOnCloseEnabled": false, | 设置关闭时应用是否最小化。 |
"doCheckForUpdatesOnStartup": true, | 设置应用是否在启动时检查更新。 |
"isMenuBarEnabled": true, | 设置是否启用菜单栏。 |
"isTrayIconEnabled": true, | 启用托盘图标,关闭时应用将隐藏到托盘。覆盖"isMinimizeOnCloseEnabled" |
"isUpdatingEnabled": true, | 设置用户是否可以更新应用。 |
"isAddNewServersEnabled": true, | 设置用户是否可以添加新服务器。 |
单服务器模式
如果设置"isAddNewServersEnabled": false
,用户将无法添加新服务器。
按钮和快捷方式将被禁用。然后你将必须将服务器添加到servers.json
文件中。
通过这种方式,你可以创建单服务器模式或只是不让用户自己添加新服务器。
示例配置
overridden-settings.json
文件:
{
"isTrayIconEnabled": false,
"isMinimizeOnCloseEnabled": false
}
当isTrayIconEnabled
启用时,应用在关闭时将隐藏。
当isMinimizeOnCloseEnabled
启用时,应用在关闭时将最小化。
当两者都禁用时,应用在关闭时将退出。
许可证
基于MIT许可证发布。