【问题标题】:Peer discovery with peerjs使用 peerjs 发现对等点
【发布时间】:2017-04-20 14:55:48
【问题描述】:

我运行 ExpressPeerServer

var express = require('express');
var app = express();
var ExpressPeerServer = require('peer').ExpressPeerServer;

app.get('/', function(req, res, next) {
    console.log("get /")
    res.send(connected);
});

var server = app.listen(9000);
var options = {
    debug: true,
    allow_discovery: true
};

var connected = [];


peerServer = ExpressPeerServer(server, options)
app.use('/bwallet', peerServer);

peerServer.on('connection', function(id) {
    var idx = connected.indexOf(id); // only add id if it's not in the list yet
    if (idx === -1) {connected.push(id);}
    console.log(connected);
});
peerServer.on('disconnect', function (id) {
    var idx = connected.indexOf(id); // only attempt to remove id if it's in the list
    if (idx !== -1) {connected.splice(idx, 1);}
    console.log(connected);
});
server.on('disconnect', function(id) {
    console.log(id + " disconnect")
});

客户端是否有一个事件,对等方可以侦听以了解对其他连接的对等方的订阅(我知道我可以实现 socket.io,但更喜欢信令服务器来处理它。)? 我不想因为性能问题而在间隔上得到“/”。 peer.listAllPeers() 也返回 undefined。

【问题讨论】:

    标签: webrtc peerjs


    【解决方案1】:

    如果我正确理解您的问题,您希望客户端事件(无需实现您自己的 Socket.io 解决方案)知道何时连接了另一个对等点(以便客户端可以连接到它)。

    一种解决方案可能是在服务器上创建并连接一个主对等点,并以固定的对等点 ID(例如“MASTER”)开始。现在所有客户端都连接到 MASTER。每当有新的对等点连接时,MASTER 就会向所有连接的对等点(客户端)广播对等点 ID。

    客户端应该监听来自 MASTER peer 的 'data' 事件。

    【讨论】:

    • 我已经 PR peerjs 和 peerjs express 服务器来添加对 peer 发现的支持。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    • 1970-01-01
    相关资源
    最近更新 更多