PeerJS应用:看起来很完美,但没有“连接”或“数据”事件的回调仅

问题描述

有点像“看起来很棒的医生!心肺是唯一缺少的东西!” ;)

服务器端:

serverPeer = new Peer('serverid',{ debug:  3 } );  // 0-arg "new Peer()" also working
connectionToClient = serverPeer.connect('clientid');

客户端(同一机器,不同的浏览器或选项卡):

clientPeer = new Peer('clientid',{ debug:  3 } );
connectionToServer = clientPeer.connect('serverid');

尽管没有对等对象或连接对象触发“连接”事件(下文中有更多内容),但其他一切看起来都不错。单步执行代码并读取控制台输出时,Peer对象和Connection对象都看起来很健康。 peer.connect(…)甚至用“接收/添加的ICE候选”,“接收的数据通道”,“数据通道连接成功”和“监听”等填充控制台。

如果我在“连接”回调(永远不会被调用)之外进行注册,则可以从“打开”和“错误”事件中获取回调。所以代替:

serverPeer.on('connection',function(conn) {
    conn.on('open',function() {
        conn.on('data',function(data) {
            alert('received: '+data); }); }); });

如果我直接注册

PeerOrConnObject.on('open',function(id) {  alert('open: ' + id); } );
PeerOrConnObject.on('error',function(err) {  alert('error: ' + err);  }  );

“打开”事件按预期方式获得回调并报告成功,并且“错误”事件也按预期方式触发并引发异常(如果Peer未在运行,则“ peerId已在使用中”,“ connected失败”)等)。

对于'data'事件,“ connection.on('data'…)”注册时不会有任何抱怨,但是永远不会被回调。即使当我在对connection.send('xyz')的调用上直接设置断点时,Connection对象也看起来很健康。甚至“ _open”字段都设置为“ true”。

任何帮助或建议,我们将不胜感激。已经大量冲浪,并尝试了数十次调整和烧伤。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)