一个局域网文字/文件P2P传输工具
项目中仅在线用户列表和WebRTC信令迫不得已需要一个轻量化的服务,其他数据传输都采用了基于WebRTC的点对点传输,不经过中间服务器,所以局域网内互传一些文字/文件都比较快。
demo演示:https://fagedongxi.com
无需安装任何软件,打开浏览器,无需登录直接传输。
接收大文件比较吃内存(单文件几百兆一般没问题)
比如新装的win系统需要从mac系统传一些需要🪜才能下载的软件或者搜到的一些东西
自
1.1.0
版本后,不再需要单独部署网页端了,仅启动一个服务端即可
参考视频:https://v.douyin.com/zp_dXkV1fys/
- 安装nodejs,node版本没有测试,我用的是
16.20.2
- 下载源码
- 进入 项目根目录,运行
npm install
- 运行
npm run start [port]
,例如npm run start 8081
- 下载对应平台的可执行文件,直接执行即可
- 默认监听
8081
端口,可通过参数指定端口,例如./internal-chat-linux 8082
- 如果你用windows,可参考 https://v.douyin.com/CeiJahpLD/ 注册成服务
- 配置文件名:
room_pwd.json
- 存放目录:应用同级目录
- 格式:参考样例
.room_pwd.json
在线列表看见对方,但一直处于断开的状态且无法发送消息:
- 原因一:浏览器不支持WebRTC(目前最新版已经在用户打开后自动检测并加入提示),旧版没有检测功能可以临时用这个进行测试:https://space.coze.cn/s/qDNpw1y7MJw/
- 原因二:网络环境不支持互相访问,详见:https://v.douyin.com/IPoHlTBzngg/
解决方案:
- 私有部署「发个东西」+「TURN中转服务coturn」
- 配置房间增加TURN支持(
.room_pwd.json
样例文件中有TURN的配置格式)
server
{
server_name fagedongxi.com;
index index.html;
listen 80;
location / {
proxy_pass http://127.0.0.1:8081/;
}
location /ws/ {
proxy_pass http://127.0.0.1:8081/ws/;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
本项目仅用于学习交流,请勿用于非法用途,否则后果自负。