Peerjs: 错误 PeerServer:消息无法识别

创建于 2019-09-04  ·  4评论  ·  资料来源: peers/peerjs

我在服务器控制台的标题中收到错误消息。 当然,一开始我尝试不运行我自己的服务器,但后来它只是默默地失败了(即它似乎连接但从未打开连接)。 所有这些都在本地主机上运行。

客户端代码:

       var peer
       var conn
       if (window.location.pathname == '/client') {
         peer = new Peer('tactiks_guestb', {
           host: 'localhost',
           port: 8081,
           path: '/peerjs'
         })
         conn = peer.connect('tactiks_hostb')
         conn.on('open', () => {
           conn.send('hi!');
         });
         this.peer = peer
         this.conn = conn
         conn.on('error', console.log)
         peer.on('error', console.log)

       } else {
         peer = new Peer('tactiks_hostb', {
           host: 'localhost',
           port: 8081,
           path: '/peerjs'
         })
         this.peer = peer
         peer.on('error', console.log)
         peer.on('connection', (conn) => {
           conn.on('error', console.log)
           this.conn = conn
           conn.on('data', (data) => {
             console.log(data)
           })

         })
       }

服务器端代码:

var express = require('express')
var app = express()

srv = app.listen(8081)
var ExpressPeerServer = require('peer').ExpressPeerServer;
var ps = ExpressPeerServer(srv, {
      debug: true
})

app.use('/peerjs', ps)
ps.on('connection', (id) => {
    console.log(id)
    console.log(srv._clients)
})
missing info

最有用的评论

["LEAVE", "CANDIDATE", "OFFER", "ANSWER"] 在这个数组中添加缺少的消息名称....在 Peerjs 的情况下,HEARTBEAT 不存在。

因此,在将 HEARTBEAT 添加为 ["LEAVE", "CANDIDATE", "OFFER", "ANSWER","HEARTBEAT" ] 后解决了我的问题。

所有4条评论

@kahrkunne您在客户端/服务器上使用哪个版本?

我在服务器中遇到了同样的错误。 我在客户端上使用 Peer Server 0.2.10 版和 Peerjs 1.1.0 版。 服务器在 Electron 中运行,客户端在浏览器中运行(测试 Chrome 77.0.3865.120 和 Firefox 69.0.3)。

当客户端调用 peer.connect(peerID); 时发生错误。 与服务器连接。

错误来自 peer\lib\util.js:27,可追溯到 peer\lib\server.js 第 91 行

if 语句始终解析为 else 并显示 util.prettyError,即使在消息是 CANDIDATE 或 OFFER 的情况下也是如此。

  socket.on("message", function(data) {
    try {
      var message = JSON.parse(data);

      if (
        ["LEAVE", "CANDIDATE", "OFFER", "ANSWER"].indexOf(message.type) !== -1
      ) {
        self._handleTransmission(key, {
          type: message.type,
          src: id,
          dst: message.dst,
          payload: message.payload
        });
      } else {
        util.prettyError("Message unrecognized");
      }
    } catch (e) {
      self._log("Invalid message", data);
      throw e;
    }
  });
        util.prettyError("Message unrecognized");
      }
    } catch (e) {
      self._log("Invalid message", data);
      throw e;
    }

更新:我更新了所有依赖项并再次运行。 我仍然收到错误消息,但现在似乎只发生在 HEARTBEAT 上。 CANDIDATE 和 OFFER 正在按预期工作。

["LEAVE", "CANDIDATE", "OFFER", "ANSWER"] 在这个数组中添加缺少的消息名称....在 Peerjs 的情况下,HEARTBEAT 不存在。

因此,在将 HEARTBEAT 添加为 ["LEAVE", "CANDIDATE", "OFFER", "ANSWER","HEARTBEAT" ] 后解决了我的问题。

这个问题会很快得到解决吗?

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

senihtosun picture senihtosun  ·  5评论

geraldsamosir picture geraldsamosir  ·  6评论

maxpavlov picture maxpavlov  ·  6评论

bilo1967 picture bilo1967  ·  7评论

UnsungHero97 picture UnsungHero97  ·  5评论