如何使用socket.io与MEAN栈中的AngularJS进行通信

在一个MEAN应用程序上工作。 有angular度在前面,它工作正常。 快递在后面工作也很好。 我来到需要依靠mongoose来处理MongoDB的东西。

最终,我想加载在我的db中的数据在前端使用Angular列表中的数据。 我听说socket.io对于这样的事情是有好处的,而且它似乎应该很容易使用。

我发现这个回购,我一直在尝试过去的几个小时,使其工作: https : //github.com/btford/angular-socket-io

不幸的是,README对于如何正确使用这个工具非常稀less,而且这些问题也没有帮助。

问题:我根本无法使用socket.emit()socket.on()或socket.io应该做的任何奇妙的事情进行通信。 在我的terminal只是一个伤心的闪烁的光标。

server.js

 var port = 8080; io = require('socket.io'); http = require('http'); server = http.createServer(app); io = io.listen(server); server.listen(port); io.on('connection', function (socket) { socket.on('send:garbage',function (data) { console.log('omg it finally worked'); }); }); 

调节器

 angular.module('MyCtrl',[]).controller('MyController',function($scope,mySocket) { // triggered by a button press (prints fine to browser console) $scope.runTest = function () { mySocket.emit('send:garbage', { 'my' : 'data' }); console.log('what the shit'); }; } 

app.js

 angular.module('myApp',[ ... 'btford.socket-io', ... ]); 

疯狂的事情是,我已经克隆了几个教程,他们的工作就像一个开箱即用的魅力。 关于为什么会发生这种情况的任何想法,以及Angular和后端之间是否有更简单的方法进行交stream?


编辑 – 发现错误!

显然这个回购只是不适用于socket.io v1.0 +。 我从使用angular-socket-io 战车解决scheme下载了一个工作教程。 它有socket.io v0.9.17,工作正常。 当我npm update socket.io --save d,并更新到v1.2.0,套接字通信打破。


编辑2 – 放弃,只是使用Angular的$http ,这是伟大的

进一步的黑客行为没有进行,然后我只是尝试使用Angular的$ http服务来完成同样的事情。 这非常简单。

Scotch.io有一个很好的教程 ,用它来设置一个简单的待办事项应用程序。 这固定了我的前端到后端的困境。