【发布时间】:2021-09-08 16:51:12
【问题描述】:
我一直在处理制作一个简单的样板代码来工作。 nodejs 服务器已在本地托管。我能够成功地使用 socket.io 建立套接字连接。但无论如何,使用 peerJS 的 webRTC 连接都没有启动。
下面的代码根本不起作用,回调没有被触发。我已经尝试了所有可能的方法,但没有任何帮助。谁能帮我找到线索?
公司代理在这方面有什么作用吗?我正在使用我的公司机器,该机器设置了默认代理并已禁用。
myPeer.on('open', id => {});
请在下面找到完整的代码。
服务器端:
const socket = require('socket.io');
const express = require('express');
const peer = require('peer');
const http = require('http');
const PORT = 9000;
const expressApp = express();
const expressServer = http.Server(expressApp);
const socketServer = socket(expressServer);
const peerServer = peer.ExpressPeerServer(expressServer, { debug: true });
expressApp.use('/peerjs', peerServer)
expressApp.get('/stream/:streamId', (req, res) => {
res.render('stream', { streamId: req.params.streamId });
});
expressServer.listen(PORT);
socketServer.on("connection", (socket) => {
socket.on('join-room', (roomId, peerId) => {
socket.join(roomId);
socket.to(roomId).emit('user-connected', peerId);
});
});
客户端
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>streamophone</title>
<script>const ROOM_ID = "<%= streamId %>";</script>
<script src="/socket.io/socket.io.js"></script>
<script src="https://unpkg.com/peerjs@1.3.1/dist/peerjs.min.js"></script>
<script src="../script.js"></script>
</head>
<body>
<div id='video' style="display: flex; align-items: center; flex-direction: column;">
<h1>New stream starts here! <%= streamId %></h1>
</div>
</body>
</html>
js:
const setupSocketConnectionViaPeer = (socket, myPeer) => {
myPeer.on('open', id => {
console.log(id);
socket.emit('join-room', ROOM_ID);
});
};
const setupSocketEvents = (socket) => {
socket.on('user-connected', (peerId) => {
console.log('some-one else has been connected', peerId);
});
}
document.addEventListener('DOMContentLoaded', async function () {
const socket = io('/');
const myPeer = new Peer(undefined, { path: '/peerjs', host: '/', port: 9000 });
setupSocketConnectionViaPeer(socket, myPeer);
setupSocketEvents(socket);
});
版本信息:
peer.js(front-end): 1.3.1
peer.js(back-end): 0.6.1
socket.io(front-end): N/A
socket.io(back-end): 4.2.0
【问题讨论】:
标签: javascript node.js socket.io peerjs