GET https://127.0.0.1:9000/peerjs/peerjs/id?ts=14993271469660.591159722513086 net :: ERR_CONNECTION_REFUSED
我使用javascript的webRTC库peerjs创build了一个简单的video聊天应用程序。 而现在我正试图在zeit.co上部署该网站。 但是,我得到一个peerjs实例创build时的错误下面是我提到的端口和主机运行服务器的代码
服务器端代码
const express = require('express') const app = express() const path = require('path') const server = require('http').createServer(app) const io = require('socket.io').listen(server) const srv = server.listen(3000) app.use('/peerjs', require('peer').ExpressPeerServer(srv, { debug: true })) const users = [] const connections = [] server.listen(3000, () => { console.log('server running') }) app.use(express.static(path.join(__dirname, 'public'))) app.get('/', (req, res) => { })
客户端代码
const peerObj = { host: '127.0.0.1', path: '/peerjs', debug: 3, config: {icerServers: [ { url: 'stun:stun1.l.google.com:19302' }, { url: 'turn:numb.viagenie.ca', credential: 'muazkh', username: 'webrtc@live.com' } ]} } peer = new Peer(peerObj)
- 项目清单
我find了我的问题的解决scheme。 实际上对等服务器在http上运行,为了使它在https上运行,我们必须生成一个ssl密钥和证书。 即使在生成密钥和证书后,它也只能在本地主机和连接到该networking的系统上运行。
有一个托pipe在heroku上的对等服务器,所以它运行在https上,而不是运行你自己的对等服务器,我们可以提到heroku对等服务器的path,然后托pipe在一些托pipe网站的应用程序,该应用程序将正常运行。 以下是我的新客户端代码
peer = new Peer({host:'peerjs-server.herokuapp.com', secure:true, port:443})
这将正确运行应用程序。
PeerJS的默认端口是9000,这也是错误提示:它试图连接到127.0.0.1
端口9000,但是您的服务器在端口3000上运行。
尝试显式添加端口号:
const peerObj = { host : '127.0.0.1', port : 3000, ... }
您可能还需要设置secure : false
,因为您的服务器不支持TLS。