У меня есть приложение, использующее PeerJS для потоковой передачи видео, и я использую узел на основе Peer Server, работающий на экземпляре Ubuntu Server по протоколу HTTPS (сертификаты SSL установлены на сервере).
Вот как я создаю свой PeerServer:
var server = PeerServer({
port:55127,
path:'/',
debug:true,
ssl:{
key: fs.readFileSync('/etc/apache2/ssl/mykey.key'),
cert: fs.readFileSync('/etc/apache2/ssl/mycert.crt')
}
});
Вот как я создаю одноранговое соединение:
var peer = new Peer('peerHost',{host: 'myhost.com', port: 55127, path: '/'})
Что касается портов, я разрешил 55127 и в UFW, и в роутере.
По какой-то странной причине мои одноранговые соединения и потоковое видео отлично работают в локальной сети, но не работают в Интернете, хотя иногда они работают, например, в некоторых случаях через мобильную сеть 3G.
При отладке соединения Peer я наткнулся на эти "ошибки":
PeerJS: VP9 Codec: null
PeerJS: iceConnectionState is disconnected, closing connections to (...)
Никаких ошибок на стороне сервера, все это либо на хосте, либо на клиенте.
Эта проблема аналогична этой, это и это.
Кто-нибудь знает, что может быть не так и как это можно исправить?
Заранее спасибо.