#javascript #webrtc #p2p #peerjs #peer
Вопрос:
Я пытаюсь использовать peerjs для подключения хоста к клиенту. У меня есть два файла (один для хоста, один для клиента). Хост сгенерирует peerID, который клиент использует для подключения к нему. Это в основном учебник отсюда.
host.html
const peer = new Peer()
peer.on('open', () => {
console.log('ID: ' peer.id)
})
peer.on('connection', (conn) => {
conn.on('data', (data) => {
// Will print 'hi!'
console.log(data)
})
conn.on('open', () => {
conn.send('hello!')
})
})
<script src="https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js"></script>
client.html
const peer = new Peer()
const conn = peer.connect('1781a113-d095-4be5-9969-b80d9c364f6b')
conn.on('open', () => {
conn.send('hi!')
})
<script src="https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js"></script>
Клиент не подключается и не отправляет сообщения. Я попытался использовать их пример для подключения к моему хосту, и это сработало. Я смог отправлять сообщения хосту. В чем проблема с моим клиентом?
Комментарии:
1. Вы получаете ошибки?
2. Нет, ничего. Ни какой-либо сигнал, он не работает.
Ответ №1:
В документации это немного расплывчато, но если вы не дождетесь события открытия, сообщения на сервер будут поставлены в очередь. Я не уверен, нужна ли дополнительная конфигурация для включения очереди, но в вашем случае должно сработать простое ожидание события открытия
const peer = new Peer()
peer.on('open', () => {
const conn = peer.connect('1781a113-d095-4be5-9969-b80d9c364f6b')
conn.on('open', () => {
conn.send('hi!')
})
})
Имейте в виду, что идентификатор однорангового узла, сгенерированный на вашем «хосте», будет меняться каждый раз при обновлении браузера, поэтому вы можете выбрать свой собственный идентификатор вместо случайного
Комментарии:
1. Большое спасибо! Это решило мою проблему. (Я не понял этого из документов) Спасибо!