Mar*_*nez 10 sockets rest node.js socket.io angularjs
我是Angular.js和Node.js的初学者,但我意识到有两种可能的方法来制作实时应用程序.第一个是使用Socket.io,另一个是使用RESTful和setInterval()函数作为客户端解决方案.我使用两种替代方案构建了我的应用程序,但我不知道为什么使用一个替代另一个更好.
我的控制器使用Angular.js(Socket.io替代):
function MyController($scope, socket) {
socket.on('test', function(data){
$scope.data = data;
console.log($scope.data);
});
}
Run Code Online (Sandbox Code Playgroud)
我的控制器使用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);
}
Run Code Online (Sandbox Code Playgroud)
这些做事方式之间会有什么不同?提前致谢!
如果您想要一个完全实时的Web应用程序,那么套接字是可行的方法.Socket.io或SockJS都是非常好的客户.当不支持Web套接字时,它们可以优雅地降级,但是,您可以选择要使用的传输方法.
您必须构建数据订阅服务,以便在所有用户之间传播更改.Tower.js和Meteor都使用被动方法,他们在模型更改时使用事件监听器.根据您希望此功能的复杂程度或强大程度,它们将是不同的可用实现.
尝试在一次连接的多个用户之间同步客户端和服务器端数据时,它确实变得越来越复杂.我建议你看看这两个框架,看看它们是如何工作的,并且可能复制它的一部分,或者它的所有功能.
根据您的用例,我认为Socket.IO是可行的方法.但是,使用带有Angular的WebSockets有一些注意事项.我建议你看看我刚才写的关于这个主题的博客文章:http://briantford.com/blog/angular-socket-io.html
归档时间: |
|
查看次数: |
4930 次 |
最近记录: |