Javascript 向客户发送其他玩家的分数?Socket.io
我的情况是,我不确定如何向其他客户发送其竞争对手的当前分数 例如: 当玩家1点击时,我希望它告诉玩家2客户端玩家1的分数Javascript 向客户发送其他玩家的分数?Socket.io,javascript,jquery,socket.io,Javascript,Jquery,Socket.io,我的情况是,我不确定如何向其他客户发送其竞争对手的当前分数 例如: 当玩家1点击时,我希望它告诉玩家2客户端玩家1的分数 userOne = userIDs[0]; userTwo = userIDs[1]; socket.on("player one", function(data) { console.log(data.pScore + "THIS IS WORKING"); score = data.pScore;
userOne = userIDs[0];
userTwo = userIDs[1];
socket.on("player one", function(data) {
console.log(data.pScore + "THIS IS WORKING");
score = data.pScore;
console.log("THIS IS PLAYER TWO" + data.pNameTwo);
if (isInArray(data.pNameTwo,allUsers)) {
console.log(users[socket.id].username);
}
socket.emit("player ones score", {p1Score: score});
});
socket.on("player two", function(data) {
console.log(data.pScore + "THIS IS WORKING");
score = data.pScore;
socket.emit("player twos score", {p2Score: score});
});
我打算只向特定的用户ID发送分数。但我不确定这样做的最佳方式。最好的方式是使用一个包含所有连接的对象,该对象在用户每次连接/断开连接时都会更新。我看到您已经有了一个用户ID列表,其中包含了他们的ID,所以,如果您的对象名为userConnections,那么您的代码应该是
userOne = userIDs[0];
userTwo = userIDs[1];
socket.on("player one", function(data) {
console.log(data.pScore + "THIS IS WORKING");
score = data.pScore;
console.log("THIS IS PLAYER TWO" + data.pNameTwo);
if (isInArray(data.pNameTwo,allUsers)) {
console.log(users[socket.id].username);
}
userConnections[userTwo].emit("player ones score", {p1Score: score});
});
socket.on("player two", function(data) {
console.log(data.pScore + "THIS IS WORKING");
score = data.pScore;
userConnections[userOne].emit("player twos score", {p2Score: score});
});
更新
好的,我还将演示如何初始化和管理用户连接。它是这样的(我只是猜测代码中的一些变量是如何调用的,所以我可能会弄错一些名称)
制作一个游戏对象,让两个用户都能看到其他玩家的链接。一个用户怎么做?userConnections调用的是什么?因为我尝试了你那里的东西,但说无法读取Undeinedi的emit属性。当我可以运行一个全局emit io.sockets.emit并在那里获得值时,我太傻了。但是谢谢你启发我,因为这引导我走上了正确的道路。@factor_za哦,我明白了。我很高兴你找到了这样做的方法。我真是个慢性子——我已经扩展了我的答案。不管怎样,我不确定我的答案是如何起作用的(因为它不是很接近那个),但不客气。哈哈,它让我思考并寻找解决方案。这是我的第一个socket.io项目。所以现在它非常丑陋!再次感谢。
var userConnections = {}
io.on('connection', function(socket) {
userConnections[socket.id] = socket;
//socket.on('player one', function(data) { ... } );
//socket.on('player two', function(data) { ... } );
socket.on('disconnect') {
delete userConnections[socket.id];
}
}