gpt4 book ai didi

javascript - 使用 PeerJS 进行广播或对等发现

转载 作者:可可西里 更新时间:2023-11-01 02:55:10 26 4
gpt4 key购买 nike

我正在评估 PeerJS 以实现一个简单的双人在线游戏。似乎一旦我将一个玩家的连接的 id 转移到另一个玩家,他们就可以通过 PeerJS 打开一个 channel ,并且一切顺利。

但是如果两个玩家想玩彼此不认识的游戏,最优雅的匹配方式是什么?有没有办法向 PeerJS 代理询问所有已连接客户端的列表,可能附有一些元数据(例如“状态:想要播放”)?或者是否有向所有客户端广播的方法?

最佳答案

使用 PeerServer你可以获取两个事件,connectiondisconnect。使用它,您可以创建一个内部列表,然后您可以从中获取您的应用程序。

部分例子:

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);}
});
someexpressapp.get('/connected-people', function (req, res) {
return res.json(connected);
});

然后,在您的客户端代码中,您可以使用 AJAX /connected-people 并使用该列表。

对于元数据,您可以扩展上面的代码以添加用户状态和更新该状态的方法。

希望这对您有所帮助!

编辑 在撰写本文时,该事件被命名为connect。它现在被命名为 connection

(此外,我现在将使用 PeerJS 大约六个小时。我希望你意识到你做了什么。)

关于javascript - 使用 PeerJS 进行广播或对等发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20775958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com