在 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的主要内容,如果未能解决你的问题,请参考以下文章

在golang中使用socket.io

在 C# 中使用 Socket.IO

在 Socket.io 中使用第一个连接发送一些状态

在 Express.js 项目中使用 Socket.io

在 socket.io 中使用 Angular

Socket.io 无法在 ReactJS 应用程序中连接