- screego,go语言开发的,浏览器实现多人共享屏
部署步骤:
screego 目前最新的版本为 v1.0.7,选择并下载系统对应的安装包:
[root@localhost ~]# wget <https://github.com/screego/server/releases/download/v1.0.7/screego_1.0.7_linux_amd64.tar.gz1>
解压后可以得到二进制文件以及示例文件 screego.config.example
,将示例文件命名为 screego.config
。目前目录文件如下:
screego-demo
├── LICENSE
├── README.md
├── screego
└── screego.config
出于安全考虑,screego 会要求以 HTTPS 协议进行访问,所以在修改配置前,需要先生成下证书。
生成 HTTPS 证书
执行以下命令生成密钥 server.key
,过程中会要求设置密码,按提示输入即可。
[root@localhost screego-demo]# openssl genrsa -des3 -out server.key 20481
接下来执行以下命令去除刚刚设置的密码:
[root@localhost screego-demo]# openssl rsa -in server.key -out server.key1
为什么要去除密码呢?我测试过配置带有密码的密钥,结果服务无法正常启动,提示如下:
FTL http server error="tls: failed to parse private key"
1
使用密钥创建服务器证书的申请文件 server.csr
,过程中会要求输入一些信息,不填也可。
[root@localhost screego-demo]# openssl req -new -key server.key -out server.csr1
创建 CA 证书 ca.crt
:
[root@localhost screego-demo]# openssl req -new -x509 -key server.key -out ca.crt -days 36501
创建服务器证书 server.crt
:
[root@localhost screego-demo]# openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey server.key -CAcreateserial -out server.crt1
目前目录文件如下:
screego-demo
├── ca.crt
├── ca.srl
├── LICENSE
├── README.md
├── screego
├── screego.config
├── server.crt
├── server.csr
└── server.key
12345678910
密钥 server.key
和服务器证书 server.crt
已经创建,接下来就可以修改配置了。
修改配置
编辑配置文件 screego.config
,这里仅列出我修改的配置项。
# 服务器公网IP
SCREEGO_EXTERNAL_IP=X.X.X.X
# 设置密钥,任意随机字符就行
SCREEGO_SECRET=8w6EJ183hqFieprl
# 后续使用nginx反向代理,这里关闭内部的TLS,如果要使用内部的TLS,就true
SCREEGO_SERVER_TLS=false
# 监听端口,之后使用反向代理,这里设置监听在本地
SCREEGO_SERVER_ADDRESS=127.0.0.1:5050
# TURN监听端口
SCREEGO_TURN_ADDRESS=0.0.0.0:3478
# 使用反向代理这里必须启用
SCREEGO_TRUST_PROXY_HEADERS=true
# 参数值all表示所有请求都需要身份验证。如果不需要验证,任何人都可以自由建立房间,改为true
SCREEGO_AUTH_MODE=all
# 修改为使用的域名,记得是https
SCREEGO_CORS_ALLOWED_ORIGINS=https://screego.ExampleDomainName.cn
# 日志信息
SCREEGO_LOG_LEVEL=info
# 用于身份验证的文件
SCREEGO_USERS_FILE=user
启动
运行以下命令启动 screego:
root@localhost screego-demo]# ./screego serve1
没有报错的话,访问 https://47.111.237.28:5050
就可以看到建房页面了,如下图所示。
点击 CREATE ROOM
按钮创建房间,再点击 Start Presentation
,其他人通过访问相同的 URL 就可以看到共享的屏幕了。
总结:
+ 开源的多用户屏幕共享工具,安装方便,使用简单
+ 实测效果不错,屏幕显示清晰,无卡顿延迟现象
+ 安全性
- 暂不支持快捷键操作