【问题标题】:I am able to use peerjs server. I want to host my own peerjs server but it's not working我可以使用 peerjs 服务器。我想托管我自己的 peerjs 服务器,但它不工作
【发布时间】:2021-09-01 21:10:36
【问题描述】:

我的服务器端代码

const express = require('express')
const app = express()
const server = require('http').Server(app)
const io = require('socket.io')(server)
const { ExpressPeerServer } = require('peer');

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

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


server.listen(3000);
And my client-side code is
var myPeer = new Peer(undefined, {
  path: '/peerjs',
  host: '/',
  port: '3000'
})

但是当我在客户端连接上使用此代码时

var myPeer = new Peer(undefined)

我也在 chrome 开发控制台中遇到了这个错误

与“ws://localhost:3000/socket.io/?EIO=4&transport=websocket&sid=sdb0qfOv9QAlFfKJAAAA”的 WebSocket 连接失败:帧头无效

最近几天我正在尝试建立点对点连接,并尝试了很多堆栈溢出的解决方案,但它不起作用。

我需要帮助,提前谢谢。

【问题讨论】:

    标签: javascript node.js express server peerjs


    【解决方案1】:
    1. 下载 ngrok 并安装
    2. 在 ngrok shell 打开时输入命令 ngrok http 你的端口号 例如(ngrok http 3000) 并输入 你会得到这样的东西
    3. ngrok shell

    after enter ngrok http 5000

    1. 把http转发给你API_URL
    2. 在 peerServer 主机中放置相同的 url,但不带 http://

    【讨论】:

      【解决方案2】:

      我通过在heroku上部署我自己的peerjs服务器然后使用它来建立安全的点对点连接解决了这个问题

       var myPeer = new Peer(undefined, {
        host: "your-peer-server-name.herokuapp.com",
        port: 443,
        secure: true
      });
      

      问题也可以通过对本地主机和对等服务器端口使用不同的端口来解决,我对对等连接和本地主机都使用 3000,这就是它不起作用的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-06
        • 2017-11-21
        • 2014-12-10
        • 2023-02-05
        • 1970-01-01
        • 1970-01-01
        • 2021-03-31
        相关资源
        最近更新 更多