我是 Angular.js 和 Node.js 的初学者,但我意识到有两种可能的方法来制作实时应用程序。第一个是使用 Socket.io,另一个是使用带有 setInterval() 函数的 RESTful 作为客户端解决方案。我使用两种替代方案构建了我的应用程序,但我不知道为什么使用其中一种更好。
我的控制器使用 Angular.js(Socket.io 替代方案):
function MyController($scope, socket) {
socket.on('test', function(data){
$scope.data = data;
console.log($scope.data);
});
}
我的控制器使用 Angular.js(RESTful 替代方案):
function MyController($scope, $http) {
setInterval(function() {
$http.get('/test.json')
.success(function(data, status, headers, config) {
$scope.data = data;
console.log($scope.data);
});
}, 1000);
}
这些做事方式之间有什么区别?
提前致谢!
如果您想要一个完全实时的 Web 应用程序,那么套接字就是您的最佳选择。 Socket.io 或 SockJS 都是非常好的客户端。当不支持网络套接字时,它们能够正常降级,不过,您可以选择您想要使用的传输方法。
您必须构建数据订阅服务才能在所有用户之间传播更改。 Tower.js 和 Meteor 都使用响应式方法,并且它们在模型更改上使用事件侦听器。根据您想要此功能的复杂程度或强大程度,它们将提供不同的实现。
当尝试在同时连接的许多用户之间同步客户端和服务器端数据时,它确实变得越来越复杂。我建议您看一下这两个框架,看看它们是如何工作的,并可能复制它的部分或全部功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)