获取 https://127.0.0.1:9000/peerjs/peerjs/id?ts=14993271469660.591159722513086 net::ERR_CONNECTION_REFUSED
GET https://127.0.0.1:9000/peerjs/peerjs/id?ts=14993271469660.591159722513086 net::ERR_CONNECTION_REFUSED
我使用 javascript 的 webRTC 库 peerjs 创建了一个简单的视频聊天应用程序。
现在我正尝试在 zeit.co 上部署站点。但是当创建 peerjs 实例时出现错误
下面是我提到 运行 服务器
端口和主机的代码
服务器端代码
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)
- 列表项
PeerJS 的默认端口是 9000,这也是错误提示的内容:它正在尝试连接到 127.0.0.1
的端口 9000,但您的服务器 运行 在端口 3000 上。
尝试明确添加端口号:
const peerObj = {
host : '127.0.0.1',
port : 3000,
...
}
您可能还需要设置 secure : false
,因为您的服务器不支持 TLS。
我找到了解决问题的方法。实际上对等服务器 运行s 在 http 上,并且要在 https 上使其成为 运行,我们必须生成一个 ssl 密钥和证书。即使在生成密钥和证书之后,它也只会在本地主机和连接到该网络的系统上 运行。
在 heroku 上托管了一个对等服务器,因此它 运行ning 在 https 上,而不是 运行ning 你自己的对等服务器,我们可以提及 heroku 对等服务器的路径和然后在某个托管网站上托管该应用程序,该应用程序将 运行 正确。下面是我的新客户端代码
peer = new Peer({host:'peerjs-server.herokuapp.com', secure:true, port:443})
这将 运行 应用正常运行。
嗨,如果你不想像 Aish 所说的那样依赖 herokuapp
您可以在终端上运行:
npm install peer
然后你的 server.js 你添加:`
//Peer server
var privateKey = fs.readFileSync('sslcert/server.key', 'utf8');
var certificate = fs.readFileSync('sslcert/server.crt', 'utf8');
const { PeerServer } = require('peer');
const peerServer = PeerServer({ port: 443,
path: '/' ,
ssl: {
key: privateKey,
cert: certificate
}
});
`
HTTPS 需要私钥和证书。确保将它们放在获取它们的路径上。
确保在客户端(index.html 上的脚本 运行)你有:
myPeer = new Peer({host:'/',
secure:true,
port:443,
path: '/'})
我使用 javascript 的 webRTC 库 peerjs 创建了一个简单的视频聊天应用程序。 现在我正尝试在 zeit.co 上部署站点。但是当创建 peerjs 实例时出现错误 下面是我提到 运行 服务器
端口和主机的代码服务器端代码
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)
- 列表项
PeerJS 的默认端口是 9000,这也是错误提示的内容:它正在尝试连接到 127.0.0.1
的端口 9000,但您的服务器 运行 在端口 3000 上。
尝试明确添加端口号:
const peerObj = {
host : '127.0.0.1',
port : 3000,
...
}
您可能还需要设置 secure : false
,因为您的服务器不支持 TLS。
我找到了解决问题的方法。实际上对等服务器 运行s 在 http 上,并且要在 https 上使其成为 运行,我们必须生成一个 ssl 密钥和证书。即使在生成密钥和证书之后,它也只会在本地主机和连接到该网络的系统上 运行。
在 heroku 上托管了一个对等服务器,因此它 运行ning 在 https 上,而不是 运行ning 你自己的对等服务器,我们可以提及 heroku 对等服务器的路径和然后在某个托管网站上托管该应用程序,该应用程序将 运行 正确。下面是我的新客户端代码
peer = new Peer({host:'peerjs-server.herokuapp.com', secure:true, port:443})
这将 运行 应用正常运行。
嗨,如果你不想像 Aish 所说的那样依赖 herokuapp
您可以在终端上运行:
npm install peer
然后你的 server.js 你添加:`
//Peer server
var privateKey = fs.readFileSync('sslcert/server.key', 'utf8');
var certificate = fs.readFileSync('sslcert/server.crt', 'utf8');
const { PeerServer } = require('peer');
const peerServer = PeerServer({ port: 443,
path: '/' ,
ssl: {
key: privateKey,
cert: certificate
}
});
` HTTPS 需要私钥和证书。确保将它们放在获取它们的路径上。 确保在客户端(index.html 上的脚本 运行)你有:
myPeer = new Peer({host:'/',
secure:true,
port:443,
path: '/'})