Мы начинаем исследовать одноранговые сети через браузер в PeerJS. Я новичок в WebRTC. В настоящее время я пытаюсь заставить две вкладки браузера на одном компьютере общаться друг с другом по локальной сети. Код, который мы сейчас тестируем, почти полностью взят из кода примера на их странице Github:
Сначала мы запускаем PeerServer локально, используя Node:
const { PeerServer } = require('peer');
const server = PeerServer({port: 9000, path: '/pjs'});
Затем пытаемся подключиться:
import Peer from 'peerjs';
var CreatePeer = function(id) {
this.peer = new Peer(id, {host: 'localhost', port: 9000, path: '/pjs', debug: 3});
}
var Connect = function(otherUserID) {
this.peer.connect(otherUserID);
}
//...
CreatePeer("myID");
//...
Connect("theirID");
Вышеописанное отлично работает в Chrome, и мы даже можем обмениваться сообщениями, используя дополнительный код, который я здесь не привожу. Однако в Firefox строка this.peer.connect(otherUserID)
не работает и отображает эту ошибку в консоли браузера:
Ошибка ICE, похоже, ваш сервер TURN неисправен, см. about:webrtc для получения дополнительной информации.
На странице about:webrtc
есть журнал, в котором эти две строки повторяются снова и снова:
РЕГИСТРАЦИЯ ПРИОСТАНОВЛЕНА: подключение активно в приватном окне
РЕГИСТРАЦИЯ ВОЗОБНОВЛЕНО: нет активных подключений в приватном окне
В Edge строка peer.connect
вместо этого вызывает это исключение в консоли:
TypeError: Объект не поддерживает свойство или метод createDataChannel.
Когда я исследую эту ошибку, я получаю результаты с 2016 по 2017 год, до того, как Edge поддержал WebRTC. Насколько я могу судить, Edge должен поддерживать WebRTC с конца 2017 года, но, возможно, я что-то не так понял.
Почему приведенный выше код работает в Chrome, но не работает в Edge или Firefox?
conn.on('open', () => {})
? - person jib   schedule 11.04.2020