如何使用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有一个很好的教程 ,用它来设置一个简单的待办事项应用程序。 这固定了我的前端到后端的困境。