一、搭建turn/stun服务器
INSTALL文件中有各种OS下的安装的详细说明,下面是linux的安装:
- 依赖
**) Linux Ubuntu, Debian, Mint:
$ sudo apt-get install libssl-dev
$ sudo apt-get install libsqlite3 (or sqlite3)
$ sudo apt-get install libsqlite3-dev (or sqlite3-dev)
$ sudo apt-get install libevent-dev
$ sudo apt-get install libpq-dev
$ sudo apt-get install mysql-client
$ sudo apt-get install libmysqlclient-dev
$ sudo apt-get install libhiredis-dev
- 编译
#1、下载源码
git clone https://github.com/coturn
#2、配置环境变量
vim ~/.bashrc
export turnserver_home=/usr/local/turnserver
export PATH=$PATH:$turnserver_home/bin
source ~/.bashrc
#3、配置和编译
sudo ./confiure --prefix=/usr/local/coturn
make & make install
- 配置
cp turnserver.conf.defaul turnserver.conf
vi turnserver.conf
#修改下面内容
# TURN server name and realm
realm=xxxx #域名,没有的话可以随便写一个
# IPs the TURN server listens to
listening-ip=0.0.0.0 #内网地址,0.0.0.0则监听所有网卡
# External IP-Address of the TURN server
external-ip=外网IP地址
# Main listening port
listening-port=3478 #监听端口号
# Enable verbose logging
verbose #日志可视
# Specify the user for the TURN authentification
user=test:test123 #指定用户名和密码
-
启用
turnadmin -k -u username -r 域名(realm) -p password
turnserver -o -a
turnadmin -k -u name -r name -p helloworld -
端口查看
lsof -i:3478
二、flutter外部包
三、问题处理
-
1、cocoapods Error running pod install问题
can't run flutter project on iOS simulator - Stack Overflow -
2、macos websocket连接失败问题
分析:应该是权限问题
解决:在macos目录下的DebugProfile.entitlements文件中加入下面权限
<key>com.apple.security.network.client</key>
<true/>
https://github.com/flutter/flutter/issues/47606
-
3、iOS error: 'WebRTC/WebRTC.h'
说明:模拟器我试了还是不能解决
https://github.com/flutter-webrtc/flutter-webrtc/issues/713 -
4、flutter: Unable to getUserMedia: NotFoundError
https://github.com/electron/electron/issues/19307
分析:经过对比发现在chrome下有视频,在macos桌面程序下没有,应该是某种权限问题。
解决:根据上面连接中的回答得到启发,但加的位置不同,在macos目录下的DebugProfile.entitlements文件中加入下面权限。
<key>com.apple.security.device.audio-input</key>
<true/>
<key>com.apple.security.device.camera</key>
- 5、ios 摄像头和麦克的权限
https://www.jianshu.com/p/c212cde86877
参考
1、webrtc(coturn服务器搭建)
https://www.jianshu.com/p/d65e369f44fb
stun/turn服务器部署 - led二极管 - 博客园
2、webrtc系列3——对于stun和turn的理解
3、WebRTC中的信令和内网穿透技术 STUN / TURN
4、NAT 穿透是如何工作的:技术原理及企业级实践
5、简单项目实战flutter(布局篇)