如何解决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 举报,一经查实,本站将立刻删除。