我对遇到的这个错误感到非常困惑,希望有人能告诉我为什么我的代码响应异常。
我做了一个简单的游戏,它应该允许客户端按下按钮 A 并向服务器发送消息“A”,然后服务器会将 A 变量加 1,并将 A(编译的服务器端)的数值发送回所有客户。我希望如果有 3 个用户,并且每个用户都按下 A,那么服务器会计算 A=3。
这是我的代码:
var io = require("socket.io").listen(8888);
var http = require("http");
var url = require("url");
console.log("Server has started.");
io.sockets.on("connection", function (socket) {
var A = 0;
var B = 0;
socket.on("message", function (data) {
if (data == 'A') {
A++;
console.log(A);
}
else if (data == 'B') {
B++;
console.log(B);
}
var M = [A + '' + B]
function M(A, B) {
this.first = A;
this.second = B;
}
this.all = function() {
return A + '' + B;
}
console.log(M);
socket.emit("message", M);
socket.broadcast.emit("message", M);
});
});
结果是每个玩家似乎都在自己的计数中,因此每个玩家必须按 A 3 次才能使 A to = 3,但所有玩家都会收到彼此按下按钮的广播。有人可以告诉我为什么客户端正在接收,但服务器正在接受来自客户端的 3 个单独堆栈中的“A”吗?