peerjs在loaclhost上工作,但不在heroku上工作?

问题描述

我在3000端口上运行我的节点服务器,在3001端口上运行对等服务器。在这种情况下,它可以正常工作。但是当在heroku上部署时,我在3000上运行我的服务器,而在443上运行对等服务器。不费力。我猜可能是端口分配问题,但我找不到问题。

peer.js

const myPeer = new Peer( {
secure:true,host: 'my-app-name.herokuapp.com',port: 443
})

server.js

const PORT = process.env.PORT || 3000;
server.listen(PORT,() => console.log(`Server running on port ${PORT}`));

github链接到项目:link

Heroku的新手。任何帮助将不胜感激!

解决方法

将此添加到您的服务器文件:

var ExpressPeerServer = require("peer").ExpressPeerServer;    
var options = {
  debug: true,allow_discovery: true,};
let peerServer = ExpressPeerServer(server,options);
app.use("/peerjs",peerServer);

像这样在客户端调用:

var peer = new Peer({
                host: "yoursite.herokuapp.com",port: "",path: "/peerjs",});
,

您必须在Heroku上托管两个应用程序。首先是您的主应用程序,其次是PeerJS服务器。因为您无法在其他端口(即https://your-app-name.herokuapp.com:5000)上托管应用程序。然后,您可以使用此连接将主应用程序PeerJS客户端与PeerJS服务器连接。

const myPeer = new Peer( {
     secure:true,host: 'my-peerjs-server-name.herokuapp.com',port: 443
})

快乐编码!

,

只需使用this Heroku Element即可以零配置部署自己的对等服务器。从您的客户端连接到该客户端,将host的{​​{1}}属性作为您{{1} {1}}。

url