Я получаю ошибку в заголовке в консоли моего сервера. Конечно, я сначала пытался не запускать свой собственный сервер, но затем он просто потерпел неудачу (т.е. казалось, что подключение, но соединение так и не открылось). Все это работает на локальном хосте.
Клиентский код:
var peer
var conn
if (window.location.pathname == '/client') {
peer = new Peer('tactiks_guestb', {
host: 'localhost',
port: 8081,
path: '/peerjs'
})
conn = peer.connect('tactiks_hostb')
conn.on('open', () => {
conn.send('hi!');
});
this.peer = peer
this.conn = conn
conn.on('error', console.log)
peer.on('error', console.log)
} else {
peer = new Peer('tactiks_hostb', {
host: 'localhost',
port: 8081,
path: '/peerjs'
})
this.peer = peer
peer.on('error', console.log)
peer.on('connection', (conn) => {
conn.on('error', console.log)
this.conn = conn
conn.on('data', (data) => {
console.log(data)
})
})
}
Серверный код:
var express = require('express')
var app = express()
srv = app.listen(8081)
var ExpressPeerServer = require('peer').ExpressPeerServer;
var ps = ExpressPeerServer(srv, {
debug: true
})
app.use('/peerjs', ps)
ps.on('connection', (id) => {
console.log(id)
console.log(srv._clients)
})
@kahrkunne Какую версию вы используете на клиенте / сервере?
Я получаю ту же ошибку на сервере. Я использую Peer Server версии 0.2.10 и Peerjs версии 1.1.0 на клиенте. Сервер работает в Electron, а клиент работает в браузере (тестирование Chrome 77.0.3865.120 и Firefox 69.0.3).
Ошибка возникает, когда клиент вызывает peer.connect (peerID); для подключения к серверу.
Ошибка исходит от узла peer \ lib \ util.js: 27, который восходит к строке 91 узла peer \ lib \ server.js.
Оператор if всегда разрешается в else и отображает util.prettyError, даже в тех случаях, когда сообщение является CANDIDATE или OFFER.
socket.on("message", function(data) {
try {
var message = JSON.parse(data);
if (
["LEAVE", "CANDIDATE", "OFFER", "ANSWER"].indexOf(message.type) !== -1
) {
self._handleTransmission(key, {
type: message.type,
src: id,
dst: message.dst,
payload: message.payload
});
} else {
util.prettyError("Message unrecognized");
}
} catch (e) {
self._log("Invalid message", data);
throw e;
}
});
util.prettyError("Message unrecognized");
}
} catch (e) {
self._log("Invalid message", data);
throw e;
}
ОБНОВЛЕНИЕ: я обновил все свои зависимости и снова запустил это. Я все еще получаю сообщение об ошибке, но, похоже, сейчас это происходит только на HEARTBEAT. CANDIDATE и OFFER работают должным образом.
["LEAVE", "CANDIDATE", "OFFER", "ANSWER"] в этом массиве добавьте отсутствующее имя сообщения .... в случае Peerjs HEARTBEAT отсутствует.
Таким образом, после добавления СЕРДЦА в качестве ["ОТПУСК", "КАНДИДАТ", "ПРЕДЛОЖЕНИЕ", "ОТВЕТ", "СЕРДЦЕ"] моя проблема была решена.
Будет ли эта проблема исправлена в ближайшее время?
Самый полезный комментарий
["LEAVE", "CANDIDATE", "OFFER", "ANSWER"] в этом массиве добавьте отсутствующее имя сообщения .... в случае Peerjs HEARTBEAT отсутствует.
Таким образом, после добавления СЕРДЦА в качестве ["ОТПУСК", "КАНДИДАТ", "ПРЕДЛОЖЕНИЕ", "ОТВЕТ", "СЕРДЦЕ"] моя проблема была решена.