Есть ли рабочий пример, который использует nodeJS + peer JS? - PullRequest
0 голосов
/ 25 апреля 2020

Я провел весь день, пытаясь настроить приложение, используя peer, но пока не смог.

Вот как выглядит файл js моего сервера:

const path = require('path');
const express = require('express');
const { ExpressPeerServer } = require('peer');
const app = express();
const PORT = process.env.PORT || 3000;

// set your static server
app.use(express.static(path.resolve(`${__dirname}/public`)));

// views
app.get('/', (req, res) => {
    res.sendFile(path.join(__dirname, 'views/index.html'));
});

// start listening
const server = app.listen(PORT);
console.log('Server is running localhost on port: ' + PORT);

// peerjs
const peerServer = ExpressPeerServer(server, {
    debug: true,
});

app.use('/peerjs', peerServer);

// listeners
peerServer.on('connection', (client) => {
    console.log("Server: Peer connected with ID:", client.id);
});

peerServer.on('disconnect', (client) => {
    console.log("Server: Peer disconnected with ID:", client.id);
});

Когда я запускаю приложение, оно говорит Server: Peer connected with ID: ff1b23c0-9b67-49e3-8461-35405397d3b2, но через минуту оно говорит: Server: Peer disconnected with ID: ff1b23c0-9b67-49e3-8461-35405397d3b2.

Кроме того, мне не удалось подключить сервер к клиенту. Функция peer.on('connection', function(conn) {} никогда не вызывается. Возможно, я что-то упускаю.

Поэтому я пытаюсь найти пример кода, который работает, но до сих пор я не нашел ни одного примера (использующего nodeJS, express, peer JS), который работает.

Может кто-нибудь представить мне какой-нибудь рабочий пример приложения узла, использующего одноранговый узел?

Все, что я хочу, это просто проверить соединение сервер-клиент в качестве первого шага. (без автоматического отключения соединения)

1 Ответ

1 голос
/ 01 мая 2020

Вот небольшой рабочий пример, я попробовал это сам.

Ваш бэкэнд Express Сервер:

const express = require('express');
const { ExpressPeerServer } = require('peer');
const cors = require('cors');

const app = express();

app.use(cors());

app.get('/', (req, res, next) => res.send('Hello world!'));

const server = app.listen(9000);

const peerServer = ExpressPeerServer(server, {
  debug: true
});

app.use('/peerjs', peerServer);

peerServer.on('connection', (client) => { console.log('client connected');});
peerServer.on('disconnect', (client) => { console.log('client disconnected');});

И ваш код внешнего интерфейса для соединения с вышеуказанным одноранговым сервером:

<html>
<head>
    <script src="https://cdn.jsdelivr.net/npm/peerjs@0.3.20/dist/peer.min.js"></script>
</head>
<body>
    <script>
        const peer = new Peer('someid', {
          host: 'localhost',
          port: 9000,
          path: '/peerjs'
        });
    </script>
</body>
</html>
...