Signal 是面向全球的开源即时通讯聊天工具,主要特点是加密信息传输,保证聊天消息不被监听和破解记录;受到全球很多重视聊天私密性能的用户青睐。本文主要介绍Signal的服务器端和pc端,并记录Signal_PC客户端的本地开发环境搭建。
Signal服务器端的部署,需要具备intel最新硬件加密的cpu支持,sgx组件。sgx是
采用硬件加密,并且不留后门的技术,Signal的消息加密和联系人关系服务器部署在
这样一台服务器上。除啦这个服务器支持外,还需要有语音视频通话服务器,附件存储
服务器S3,消息队列服务器等几个重要服务器,因此要架设一套完整的Signal服务器
环境,需要安装部署好几种类型的服务。当然这些服务可以运行在多台服务器上,
也可以运行在一台服务器上。按具体应用规模考虑部署的规模。
Signal客户端已经涵盖了Pc端,android端,ios的pc和ipad端,完全是一套完整的工具;
但是这些开源软件的特点是国外属性特别浓,并不适合国内用户,例如它的联系人是和手机
的通讯录绑定起来的,即手机里的电话联系人,可以直接导入到Signal的联系人列表。
新建联系人也是需要先加到手机的电话联系人,这一点特别不能理解。相信国内的用户都
习惯了微信的方式,微信好友就是单纯的微信好友,和手机联系人没关系。
Signal的PC端采用nodejs+electron+react的框架,完全typescript开发模式。
特别适合前端的全栈工程师用来学习分析代码研究用。所以便撸了一下文档,开始在本地
部署它的开发 环境。
Signal的源码地址在github官网: https://github.com/signalapp/Signal-Desktop
部署教程写在CONTRIBUTING.md里面。按照这个文档基本可以完成环境搭建。
首先需要安装nodejs,这个node版本需要和signal的对应,通过https://github.com/signalapp/Signal-Desktop/blob/development/.nvmrc
查看signal的当前源码需要的node版本,例如这里的版本显示是 12.13.0 ,所以必须安装nodejs
的12.13.0版本。node的安装,要选择全局安装,并把node添加到环境变量path中;
通过cmd运行 node -v 能显示出当前版本号,即表示安装成功。
安装windows的vs .net环境 npm install --vs2015 --global --production --add-python-to-path windows-build-tools
signal采用yarn管理包依赖。接下来按步骤执行下面:
获取源码
git clone https://github.com/signalapp/Signal-Desktop.git
解压源码并cd到根目录
cd Signal-Desktop
安装yarn管理工具
npm install --global yarn # (only if you don’t already have `yarn`)
通过yarn安装依赖包,这需要比较长时间,大约40分钟。
yarn install --frozen-lockfile # Install and build dependencies (this will take a while)
yarn grunt # Generate final JS and CSS assets
yarn build:webpack # Build parts of the app that use webpack (Sticker Creator)
运行测试
yarn test # A good idea to make sure tests run first
启动编译运行signal本地调试
yarn start # Start Signal!
以上即可在本地调试signal的pc端源码了。采用vscode 的源码编辑器管理本地代码,用vscode的terminal 命令行运行。