【发布时间】:2016-07-05 10:40:33
【问题描述】:
我有一个带有以下设置的 node.js 服务器应用程序:
var express = require('express');
var io = require('socket.io');
var http = require('http');
var app = express();
app.use(express.static('public'));
var server = http.createServer(app);
io = io.listen(server);
io.on('connection', function(socket){
console.log('a user is connected');
});
device.on('disconnect', function() {
console.log('we got disconnected! :( ');
io.emit('deviceDisconnection');
});
这里的设备是蓝牙连接的设备。 而且,在客户端,我有一个 AngularJS 应用程序,在应用程序的控制器中声明了以下事件订阅:
var appFront = angular.module(appFront , [])
.controller('mainController', ['$scope', '$http', function($scope,$http) {
var socket = io();
socket.on('deviceDisconnection', function(){
$scope.connected = 'TRUE';
});
}]);
当然,在视图中,我有以下绑定:
<div class="row">
<p>{{connected}}</p>
</div>
问题在于更改并不是真正“实时”的。我的意思是,connected 值可能在范围内发生了更改,但需要在页面上执行操作(按钮 clic)以使用正确的值更新视图。如果我没有在页面上执行任何操作,则不会刷新值。
我可能忘记了什么..但我不知道是什么..
【问题讨论】:
标签: angularjs node.js socket.io