Я пытаюсь реализовать простой двухсторонний видеочат во внутренней сети для своего рабочего места. Я написал код на стороне клиента, и он работает: если я подключаюсь к peerjs с помощью ключа API peerjs, соединение устанавливается правильно. Но есть проблема: видеопоток невероятно тормозит (иногда вообще зависает). Я предполагаю, что это потому, что бесплатный сервер peerjs, к которому я подключаюсь, слишком слаб, поэтому я хочу попытаться разместить его самостоятельно.
Я пробовал все способы и глубоко искал помощи, но не мог преодолеть это. Я пробовал комбинировать его с Express или просто создавать PeerServer, следуя инструкциям, которые я нашел на https://github.com/peers/peerjs-server. Я пробовал использовать простой «npm install peer», а затем «peerjs --port 9000». Я пробовал с героку. Я перепробовал все комбинации портов, путей и фрагментов кода, которые смог найти, но никак. Кроме того, я с удовольствием многое понял о peerjs, но все равно не повезло.
Может ли кто-нибудь, кто успешно запустил сервер peerjs, объяснить мне, в чем я ошибаюсь?
Вот мой минимальный код на стороне клиента (закомментированные строки - это строки, которые я пробовал безуспешно):
var name = prompt('What's your name?');
var peer = new Peer(name, {
host: 'https://videodesk-ennesimo.herokuapp.com/',
port: 9000,
//key: 'peerjs',
//path: '/peerjs',
//secure: true
});
peer.on('open', function(name){
alert(name + ' connected');
});
Все отлично работает с
var peer = new Peer(name, { key: 'mypeerjsfreeapikey' });
но, как было сказано ранее, он почти заморожен. Вы можете проверить, работает ли мой одноранговый сервер, по адресу https://videodesk-ennesimo.herokuapp.com/.
Другие попытки, которые я сделал, например:
var express = require('express');
var app = express();
var ExpressPeerServer = require('peer').ExpressPeerServer;
var options = {
debug: true,
allow_discovery: true
}
var server = require('http').createServer(app);
app.use('/peerjs', ExpressPeerServer(server, options));
server.listen(9000, 'localhost');
с последующей модификацией клиентского кода.
Я должен подчеркнуть, что моя клиентская часть представляет собой приложение node.js, созданное с помощью Express, и что я использую самозаверяющий SSL-сертификат, потому что Google Chrome не разрешает веб-камеру при небезопасных подключениях.
Любая помощь будет полезна. Я застрял на этом с прошлой недели, и я не могу больше терять время. Тоже не знаю, что еще попробовать. Также была бы полезна рабочая альтернатива peerjs.
Большое спасибо!