2

サーバーに接続されている各ピアに特定の通知を送信しようとしています。

ピア クライアントと同じ方法で通知を送信しようとしていますが、その方法はサポートされていません。サーバーから特定のピアに通知を送信するにはどうすればよいですか?

var PeerServer = require('peer').PeerServer;
var server = new PeerServer({port: 9000, path: '/myapp'});
var connected = [];
server.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);}
});
server.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);}
});

var app = express();

var turn = {
  type: 1,
  selection: "NINGUNA",
  timestamp: new Date().getTime()
};

app.get('/connected-people', function (req, res) {
  var list = connected;

  for(var i = 0; i < connected.length; i++){    
    var conn = server.connect(connected[i]);
    console.log(connected[i]);
    conn.on('open', function(){
      conn.send(turn);
    });
  }

  return res.json(connected);
});

ただし、この方法では、通知はピアに送信されません。それを行う方法はありますか?

4

3 に答える 3

2

コメントするのに十分な担当者がいませんが、あなたがやろうとしていることを見ると、直接サーバーからピアへの通信にsocket.ioを使用できると思います。

PeerJSのドキュメントを見ると、

接続を仲介するために、PeerJS は PeerServer に接続します。ピアツーピア データはサーバーを通過しないことに注意してください。サーバーは接続ブローカーとしてのみ機能します。

ピアとの直接通信を処理するように設定されていないようですが、socket.io は可能です。

于 2015-12-18T02:15:48.897 に答える