也不知道是什么意思,天天都有人在微信公众号的后台发,是打算找我兑奖吗?
本文软件是朋友 Eduna
推荐的,因为他觉得好像很好玩的样子。老苏一开始以为 tl-rtc-file
是跟 Snapdrop
一样的局域网文件传输工具,在看了 demo
网站后,发现确实有点意思,但最终的结果却有点让人失望了。
什么是 tl-rtc-file ?
tl-rtc-file
是基于 webrtc
的网页在线媒体流传输开源工具。内网不限速(局域网最高到过70多M/s),支持多文件拖拽发送,网页文件预览。 扩展了许多丰富的小功能,如本地屏幕录制,远程屏幕共享(无延迟),远程音视频通话(无延迟),直播(无延迟),密码房间,oss
云存储,中继服务设置,webrtc
检测,webrtc
统计,文字传输(群聊,私聊),公共聊天,远程画板,AI
聊天框,丰富的后台管理,实时执行日志展示,机器人告警通知等功能… 等等
官方的演示站点:https://im.iamtsm.cn
安装 在群晖上以 Docker 方式安装。因为涉及到多个容器,所以采用 docker-compose
安装方式。
准备工作 第一步、先创建好目录
1 2 3 4 5 mkdir -p /volume1/docker/tlrtcfile/{data/{db,log ,init.sql,my.cnf},coturn}cd /volume1/docker/tlrtcfile
第二步、准备好需要的文件
turnserver-with-secret-user.conf 第一个文件是 turnserver-with-secret-user.conf
实际上 turnserver
在局域网是非必须步骤,只有在公网才是必须步骤。所谓非必须就是哪怕容器停止了,也不影响使用的意思
老苏基于官方的示例文件:https://github.com/tl-open-source/tl-rtc-file/blob/master/docker/coturn/turnserver-with-secret-user.conf 做了微调
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 listening-device =eth0listening-ip= listening-port =3478 min-port =49152 min-port =55000 cli-password =qwertyfingerprint verbose no-tls no-dtls use-auth-secret static-auth-secret =tlrtcfilerealm =192.168 .0.197 :3478
其中 :
listening-device
:一般单网卡不需要修改
static-auth-secret
:密码
realm
: 前面的 IP
修改为自己群晖主机的 IP
,后面的端口不要改
这个文件需存放在 coturn
目录中
env.txt 第二个文件是 env.txt
,之所以没用 tlrtcfile.env
做文件名,是为了方便在 FileStation
中直接编辑修改
老苏基于官方的示例文件:https://github.com/tl-open-source/tl-rtc-file/blob/master/tlrtcfile.env 做了微调,去掉了没用上的部分,例如 OSS
、企业微信等
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 tl_rtc_file_api_port =9092 tl_rtc_file_socket_port =8444 tl_rtc_file_socket_host =192.168 .0.197 :8444 tl_rtc_file_webrtc_stun_host =stun:192.168 .0.197 :3478 tl_rtc_file_webrtc_turn_host =turn:192.168 .0.197 :3478 ?transport=udptl_rtc_file_webrtc_turn_username =tlrtcfiletl_rtc_file_webrtc_turn_credential =tlrtcfiletl_rtc_file_webrtc_turn_secret =tlrtcfiletl_rtc_file_webrtc_turn_expire =86400000 tl_rtc_file_db_open =true tl_rtc_file_db_mysql_host =mysqltl_rtc_file_db_mysql_port =3306 tl_rtc_file_db_mysql_dbName =webchattl_rtc_file_db_mysql_user =tlrtcfiletl_rtc_file_db_mysql_password =tlrtcfiletl_rtc_file_manage_room =tlrtcfiletl_rtc_file_manage_password =tlrtcfile
需要将 192.168.0.197
修改为自己群晖主机的 IP
docker-compose.yml 第三个文件是 docker-compose.yml
老苏基于官方的示例文件:https://github.com/tl-open-source/tl-rtc-file/blob/master/docker-compose.yml 做了微调,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 version: '3' services: api-http: profiles: ['http' ] image: iamtsm/tl-rtc-file-api container_name: tl-rtc-file-api env_file: - ./env.txt environment: - tl_rtc_file_env_mode=http - tl_rtc_file_db_open=true command: - tlapi ports: - 9092 :9092 links: - mysql depends_on: - mysql - coturn volumes: - ./env.txt:/tlrtcfile/tlrtcfile.env api-https: profiles: ['https' ] image: iamtsm/tl-rtc-file-api container_name: tl-rtc-file-api env_file: - ./env.txt environment: - tl_rtc_file_env_mode=https - tl_rtc_file_db_open=true command: - tlapi ports: - 9092 :9092 links: - mysql depends_on: - mysql - coturn volumes: - ./env.txt:/tlrtcfile/tlrtcfile.env socket-http: profiles: ['http' ] image: iamtsm/tl-rtc-file-socket container_name: tl-rtc-file-socket command: - tlsocket env_file: - ./env.txt environment: - tl_rtc_file_env_mode=http - tl_rtc_file_db_open=true ports: - 8444 :8444 links: - mysql depends_on: - mysql - coturn volumes: - ./env.txt:/tlrtcfile/tlrtcfile.env socket-https: profiles: ['https' ] image: iamtsm/tl-rtc-file-socket container_name: tl-rtc-file-socket command: - tlsocket env_file: - ./env.txt environment: - tl_rtc_file_env_mode=https - tl_rtc_file_db_open=true ports: - 8444 :8444 links: - mysql depends_on: - mysql - coturn volumes: - ./env.txt:/tlrtcfile/tlrtcfile.env mysql: profiles: ['http' ,'https' ] image: iamtsm/tl-rtc-file-mysql container_name: tl-rtc-file-mysql restart: always environment: - MYSQL_ROOT_PASSWORD=tlrtcfile - MYSQL_DATABASE=webchat - MYSQL_USER=tlrtcfile - MYSQL_PASSWORD=tlrtcfile volumes: - ./data/db:/var/lib/mysql - ./data/my.cnf:/etc/mysql/conf.d/my.cnf - ./data/log:/var/log/mysql - ./data/init.sql:/docker-entrypoint-initdb.d/init.sql coturn: profiles: ['http' ,'https' ] image: iamtsm/tl-rtc-file-coturn container_name: tl-rtc-file-coturn ports: - "3478:3478/udp" - "3478:3478/tcp" volumes: - ./coturn/turnserver-with-secret-user.conf:/etc/turnserver.conf
将 env.txt
、docker-compose.yml
放入根目录
一键启动 然后执行下面的命令
1 2 3 4 5 6 7 8 cd /volume1/docker/tlrtcfiledocker-compose --profile=http up -d docker-compose --profile=https up -d
运行 如果是以 http
模式启动的,在浏览器中输入 http://群晖IP:9092
就能看到主界面
如果是 https
模式启动的,在浏览器中输入 https://群晖IP:9092
会看到提示
点 高级
,选择继续前往
之后的操作和功能都是一样的
点左下角的 创建/加入房间
默认会生成一串数字,但是并不能用来做房间号
所以需要手动改为字母,然后再次点左下角的 创建/加入房间
加入成功
另一方输入同样的房间号,加入到同一个房间
双方可以聊天
也可发文件
选择需要传递的文件,点 一键发送
接收端会有提示
点开能看到详情
可惜其他功能不能用,可能需要 捐赠版
才行吧
遗留问题 刷新页面会显示 系统错误
但是似乎并不影响发消息和发文件,因此也就不去深究了,先这样吧
参考文档
tl-open-source/tl-rtc-file: WebRTC P2P online web media streaming tool (for files, video, screen, live streaming, text) with management and statistical monitoring capabilities. 地址:https://github.com/tl-open-source/tl-rtc-file
tl-rtc-file 地址:https://im.iamtsm.cn/
tl-rtc-file-使用手册 · tl-rtc-file 地址:https://im.iamtsm.cn/document/
tl-rtc-file-website 地址:https://im.iamtsm.cn/website/index.html