Peerjs: ОШИБКА PeerServer: сообщение не распознано

Созданный на 4 сент. 2019  ·  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 отсутствует.

Таким образом, после добавления СЕРДЦА в качестве ["ОТПУСК", "КАНДИДАТ", "ПРЕДЛОЖЕНИЕ", "ОТВЕТ", "СЕРДЦЕ"] моя проблема была решена.

Все 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, который восходит к строке 91 узла peer \ lib \ server.js.

Оператор 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 отсутствует.

Таким образом, после добавления СЕРДЦА в качестве ["ОТПУСК", "КАНДИДАТ", "ПРЕДЛОЖЕНИЕ", "ОТВЕТ", "СЕРДЦЕ"] моя проблема была решена.

Будет ли эта проблема исправлена ​​в ближайшее время?

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

bilo1967 picture bilo1967  ·  7Комментарии

jameshfisher picture jameshfisher  ·  5Комментарии

nhducseuit picture nhducseuit  ·  5Комментарии

veezo2007pk picture veezo2007pk  ·  7Комментарии

Kitanga picture Kitanga  ·  5Комментарии