Peerjs: FEHLER PeerServer: Nachricht nicht erkannt

Erstellt am 4. Sept. 2019  ·  4Kommentare  ·  Quelle: peers/peerjs

Ich erhalte den Fehler im Titel in der Konsole meines Servers. Natürlich habe ich es zuerst versucht, ohne meinen eigenen Server zu betreiben, aber dann ist es einfach stumm gescheitert (dh es schien eine Verbindung herzustellen, aber die Verbindung wurde nie geöffnet). All dies läuft auf localhost.

Clientseitiger Code:

       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)
           })

         })
       }

Serverseitiger Code:

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

Hilfreichster Kommentar

["LEAVE", "CANDIDATE", "OFFER", "ANSWER"] in diesem Array fehlenden Nachrichtennamen hinzufügen ....im Fall von Peerjs ist HEARTBEAT nicht vorhanden.

Nachdem ich HEARTBEAT als ["LEAVE", "CANDIDATE", "OFFER", "ANSWER","HEARTBEAT"] hinzugefügt habe, hat sich mein Problem gelöst.

Alle 4 Kommentare

@kahrkunne Welche Version verwenden Sie auf Client/Server?

Ich erhalte denselben Fehler auf dem Server. Ich verwende Peer Server Version 0.2.10 und Peerjs Version 1.1.0 auf dem Client. Der Server läuft in Electron und der Client läuft im Browser (sowohl Chrome 77.0.3865.120 als auch Firefox 69.0.3 getestet).

Der Fehler tritt auf, wenn der Client peer.connect(peerID) aufruft; mit dem Server zu verbinden.

Der Fehler kommt von peer\lib\util.js:27, der auf peer\lib\server.js Zeile 91 zurückgeht

Die if-Anweisung wird immer in else aufgelöst und zeigt util.prettyError an, auch in Fällen, in denen die Nachricht ein KANDIDAT oder ANGEBOTE ist.

  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;
    }

UPDATE: Ich habe alle meine Abhängigkeiten aktualisiert und dies erneut ausgeführt. Ich erhalte immer noch den Fehler, aber er scheint jetzt nur bei HEARTBEAT zu passieren. CANDIDATE und OFFER funktionieren wie erwartet.

["LEAVE", "CANDIDATE", "OFFER", "ANSWER"] in diesem Array fehlenden Nachrichtennamen hinzufügen ....im Fall von Peerjs ist HEARTBEAT nicht vorhanden.

Nachdem ich HEARTBEAT als ["LEAVE", "CANDIDATE", "OFFER", "ANSWER","HEARTBEAT"] hinzugefügt habe, hat sich mein Problem gelöst.

Wird dieses Problem in absehbarer Zeit behoben?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen