私はubuntu 19を備えた自分のサーバーを持っています。
注:ビデオチャットWebアプリケーション用のスタン/ターンサーバーが必要です。両方のデバイスが同じネットワークにある場合は、すでに機能しています。
Coturnを正常にインストールして構成しました。ターミナルでturnserver
またはNohup turnserver &
を実行して、ターンサーバーを正常に起動できます。
注:サーバーへのSSH
接続があります。
また、必要なポートが開いていることを確認し、netstat -tulpn
でチェックしました。
また、Sudo service coturn restart
のテスト中にcoturnを数回再起動しています。
これらの構成はturnserver.conf
で使用します。
# Also tried 80
listening-port=3478
# Also tried 443
tls-listening-port=5349
listening-ip=<MY-IP4>
listening-ip=<MY-IP6>
relay-ip=<MY-IP4>
external-ip=<MY-IP4>
oauth
user=root:<password>
userdb=/var/lib/turn/turndb
no-stdout-log
これは、js内の私のiceServers構成です。これは動作するはずです(他の組み合わせで大量に実行しました)。
var pcConfig = {
'iceServers': [
{
'urls': 'stun:<MY-IP4>:80'
},
{
'urls': 'turn:<MY-IP4>:80',
'credential': '<PASSWORD>',
'username': 'root'
}
]
};
私はさまざまなスタン/ターンサーバーの組み合わせのトンを行いました、例えば:
私はグーグルのスタンサーバーを使用しました:stun.l.google.com:19302、stun2.l.google.com:19302など。
私はポート3478と5349を試しました(もちろん、coturnを再起動した後)
スタンサーバーの資格情報を使用しようとしましたが、資格情報は必要ありません。
IP6アドレスを使ってみた
私はまた、私のwebprojectとここでテストをライブで行っています: https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
基本的に上記のテストURLは常に私に与えます:
Note: errors from onicecandidateerror above are not neccessarily fatal. For example an IPv6 DNS lookup may fail but relay candidates can still be gathered via IPv4.
The server stun:<MY-IP4>:80 returned an error with code=701:
STUN server address is incompatible.
The server stun:<MY-IP4>:80 returned an error with code=701:
STUN server address is incompatible.
私がグーグルのスタンサーバーを使用するか、自分のスタンサーバーを使用するかは関係ありません、エラーは同じです。
私のWebプロジェクトとビデオチャットは同じネットワークを使用するとうまく機能しますが、スタンアンドターンサーバーが同じネットワークで使用されていないと思います。
また、JSファイルを更新している間は常にキャッシュを削除したため、新しいJSファイルが使用されました。したがって、それも問題ではありませんでした。
[〜#〜]編集[〜#〜]
この組み合わせでエラーが発生することはありません。
Note: errors from onicecandidateerror above are not
neccessarily fatal. For example an IPv6 DNS
lookup may fail but relay candidates can still be gathered via IPv4.
テスト済み https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/
{
'urls': 'stun:<MY-IP6>:80'
},
{
'urls': 'turn:<MY-IP4>:80',
'credential': '<PASSWORD>',
'username': 'root'
}
スタンにはIP6、ターンにはIP4を使用しました。別のネットワークでのビデオチャットはまだ機能せず、他にエラーを見つけることはできません。
編集:
https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ が機能しないことに今日気づきました。 Firefoxでエラーは発生しませんでした。しかし、あなたはそこにいくつかのナンセンスを入力することができ、それはエラーも表示しません...
編集:
有効な証明書も追加しました:
cert=/usr/local/etc/turn.pem
pkey=/usr/local/etc/turn.key.pem
動作するようです。コターンを再起動すると、ステータスから問題なく実行されていることがわかります。
ビデオチャットはまだ別のネットワークでは機能しません。
はい。全体を間違った角度から見ていました。 TURN/STUNサーバーの設定は正しいです。
問題は、クライアント/サーバーコードにあります。シグナリングは機能しません。
私は this の記事に従いましたが、シグナリングサービスのセットアップに問題があります。これは新しい質問で問われるべきだと思います。