【问题标题】:Receiving data through PeerJS通过 PeerJS 接收数据
【发布时间】:2017-06-07 01:18:24
【问题描述】:

我正在做一个小的 PeerJS 项目,我有点困惑。我能够打开连接并确认客户端已连接,但我无法弄清楚接收任何内容的正确方法或语法。或者也许我只是错过了一些简单的东西。我已经尝试了很多变化试图让它发挥作用。下面是JS和HTML。

JS:

var peer = new Peer({
  key: 'lwjd5qra8257b9'
// I use my own API key for testing, this is the public PeerJS key
//you'll have to generate your own if this doesn't work.
});

peer.on('open', function(id) {
  $('body').append('<br/>Your personal peer ID is: ' + id + '<br/>Be careful who you share it with.');
});
peer.on('connection', connect);

function connect(succ) {
  conn = succ;
  //input changes on successful connect
  $('#peerKeyEnter').val(conn.peer);
  $('#peerKeyEnter').prop('disabled',true);
}

$(document).ready(function() {

  $('#peerKeySubmit').on('click', function() {
    var buddy = document.getElementById('peerKeyEnter').value;
    var buddyConn = peer.connect(buddy); //send connection request
    connect(buddyConn); //connect to peer

    //sending data
    buddyConn.on('open', function() {
      buddyConn.send('this is supposed to work')
    });

    //receiving data
    buddyConn.on('connection', function(conn) {
      buddyConn.on('data', function(data) {
        console.log(data);
      });
    });
  }); //end peerKeySubmit.click
}); //end doc.ready()

HTML:

<html>
<head>
  <script
  src="https://code.jquery.com/jquery-3.2.1.js"
  integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="
  crossorigin="anonymous"></script>
  <!--script src='peer.js'></script-->
<script src="http://cdn.peerjs.com/0.3/peer.js"></script>
  <script src='app.js'></script>
</head>
<body>

<input type='text' id='peerKeyEnter' placeholder="Enter peer's ID"></input>
<button id='peerKeySubmit' value='Send'>Select Peer</button>

</body>
</html>

【问题讨论】:

    标签: javascript jquery peerjs


    【解决方案1】:

    实际上,你就快到了。您的buddyConn.on('data'... 应该在connect 函数中,使用该函数的参数名称进行连接。此外,对connect 的第二次调用不应在#peerKeySubmit.on 回调函数中。这是修改后的(工作)代码:

    var peer = new Peer({
      key: 'lwjd5qra8257b9'
    // I use my own API key for testing, this is the public PeerJS key
    //you'll have to generate your own if this doesn't work.
    });
    
    peer.on('open', function(id) {
      $('body').append('<br/>Your personal peer ID is: ' + id + '<br/>Be careful who you share it with.');
    });
    peer.on('connection', connect);
    
    function connect(succ) {
      conn = succ;
      conn.on('data', function (data) {
        console.log('Received from ' + conn.peer + ': ' + data);
      });
    
      //input changes on successful connect
      $('#peerKeyEnter').val(conn.peer);
      $('#peerKeyEnter').prop('disabled',true);
    }
    
    $(document).ready(function() {
    
      $('#peerKeySubmit').on('click', function() {
        var buddy = document.getElementById('peerKeyEnter').value;
        var buddyConn = peer.connect(buddy); //send connection request
    
        //sending data
        buddyConn.on('open', function() {
          buddyConn.send('this is supposed to work')
        });
    
      }); //end peerKeySubmit.click
    }); //end doc.ready()
    

    【讨论】:

    • 非常感谢,我在那个问题上停留了一段时间。我不敢相信我从来没有注意到接收函数不应该在 peerKeySubmit.click
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多