Javascript 从flash接收数据并在angularJS客户端显示
我试图从我制作的一个极其简单的flash游戏中获取数据(用户的分数),并将其显示在一个简单的引导板上,该引导板通过AngularJS显示。您可以获得所有代码的副本(可能需要运行Javascript 从flash接收数据并在angularJS客户端显示,javascript,node.js,angularjs,flash,sockets,Javascript,Node.js,Angularjs,Flash,Sockets,我试图从我制作的一个极其简单的flash游戏中获取数据(用户的分数),并将其显示在一个简单的引导板上,该引导板通过AngularJS显示。您可以获得所有代码的副本(可能需要运行npm install才能使其正常工作)。我正在使用NodeJS/Express/Socket.io从游戏中传输数据 以下是app.js(服务器端)的代码: 上面的要点是: socket.on('data', function (data) { socket.broadcast.emit(data); }); 这
npm install
才能使其正常工作)。我正在使用NodeJS/Express/Socket.io从游戏中传输数据
以下是app.js(服务器端)的代码:
上面的要点是:
socket.on('data', function (data) {
socket.broadcast.emit(data);
});
这就是我试图将数据从服务器端发送到客户端的地方。在客户端-在我的主控制器中,我有这个
leader-board.js(主客户端javascript文件):
如您所见,我正在尝试获取发出的数据,并将其推送到一个数组中,在那里我将保留分数。当用户从主index.html文件中单击提交按钮时,将调用createCompetitor
函数
index.html
<body>
...
<button ng-click="createContestant()" class="btn btn-success"
ng-disabled="
ldrbd.contestantName.$error.required ||
ldrbd.contestantScore.$error.required
"
>
Submit Score
</button>
...
</body>
…和客户端:
socket.on('message', function (data) {
console.log(data)
score = data;
socket.emit('score', score);
})
socket.on('score', function(data) {
console.log(data);
$scope.score = data;
});
仍然不走运-但我将
console.log
消息添加到服务器端,以确认数据是通过节点发送和接收的(至少是通过节点发送和接收的)-该消息的输出是一个数字,即分数。我意识到的是…当点击按钮时,分数应该在客户端输入。但是,当游戏结束时,数据会从服务器端发出……因此,当单击按钮时……此时客户端是否可以使用数据?这是差异吗 这是工作套接字代码(花了我一段时间,但我得到了它)
服务器端(节点/快车):
socket.on('message', function (data) {
console.log(data);
score = data;
console.log("Transfered:" + " " + score);
//
})
socket.on('score', function() {
socket.emit('sendscore', score);
})
客户端(AngularJS)
如果您想亲自尝试,问题中的链接仍然适用于代码
socket.on('score', function(data) {
console.log(data);
$scope.score = data;
});
socket.on('message', function (data) {
console.log(data);
score = data;
console.log("Transfered:" + " " + score);
//
})
socket.on('score', function() {
socket.emit('sendscore', score);
})
socket.on('sendscore', function(data) {
console.log(data);
$scope.score = data;
});
// Outgoing
$scope.createContestant = function() {
socket.emit('score')
//$scope.$digest;
//console.log($scope.score[0]);
var contestant = {
id: new Date().getTime(),
display_name: "Bob",
score: $scope.score
};
$scope.contestants.push(contestant);
socket.emit('createContestant', contestant);
_resetFormValidation();
};