在 socket.io 中使用 Angular
Posted
技术标签:
【中文标题】在 socket.io 中使用 Angular【英文标题】:Using Angular with socket.io 【发布时间】:2014-03-17 09:13:53 【问题描述】:我知道 Angular 在客户端提供了很棒的两种数据绑定方式,但我想要更多!
我正在寻找将 Angular 与我的服务器端(包括 socket.io 的 SailsJS)连接起来的正确方法。
谢谢!
【问题讨论】:
html5rocks.com/en/tutorials/frameworks/angular-websockets 【参考方案1】:你试过角帆绑定吗? (https://github.com/diegopamio/angular-sails-bind) 我敢打赌你没有,因为我几分钟前刚刚向世界发布了 :)。我为自己的项目制作了它,然后决定将它作为一个独立的库,这样每个人都可以受益,我可以第一次体验开发 bower 包。
希望对你有帮助。
顺便说一句:它适用于sails 0.10(因为某些事情,例如主题名称自0.9以来已更改)。如果您需要使其适用于 0.9,请告诉我,我很乐意为您提供帮助。
【讨论】:
感谢您的提醒。我一定会在这周尝试一下。由于我使用的是sails 0.10,因此不需要向后兼容。【参考方案2】:我建议尝试https://github.com/btford/angular-socket-io,它允许像这样在控制器中简单地使用套接字对象:
var socketApp = angular.module('socketApp', [
'btford.socket-io'
]);
socketApp
.controller('messageListController', ['$scope', 'socket', function($scope, socket)
$scope.messages = [];
$scope.postMessage = function(message) ;
socket.on('connect', function ()
$scope.$on('socket:update', function(event, data)
$scope.messages.push(data);
);
$scope.postMessage = function(message, callback)
socket.emit('post', message, function(commitedMessage)
$scope.messages.push(commitedMessage);
callback(commitedMessage);
);
;
);
]);
【讨论】:
以上是关于在 socket.io 中使用 Angular的主要内容,如果未能解决你的问题,请参考以下文章