使用MEAN应用程序。前面有角度,工作正常。后面的快递也很好。我需要依靠mongoose来处理MongoDB的东西。
最终,我想在前端使用Angular加载存储在我db
的某些列表中的数据。我听说socket.io对这类事情很有用,而且看起来应该很容易使用。
我找到了这个回购,过去几个小时我一直试图让它成功:https://github.com/btford/angular-socket-io
不幸的是,自述文件在完全如何使其工作方面非常稀少,而且这些问题也没有用。
问题:我无法使用socket.emit()
或socket.on()
或socket.io应该执行的任何精彩内容进行通信。在我的终端只是一个悲伤的闪烁光标。
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和后端之间是否有更简单的通信方式?
编辑 - 找到BUG!
显然这个repo不适用于socket.io v1.0 +。我从chariot solutions下载了一个使用angular-socket-io
的工作教程。它有socket.io v0.9.17,并且工作正常。当我npm update socket.io --save
d并更新到v1.2.0时,套接字通信中断了。
编辑2 - 放弃并使用Angular' $http
,这很棒
进一步的黑客攻击无处可去,然后我尝试使用Angular的$ http服务来完成同样的事情。而且它非常简单。
Scotch.io有excellent tutorial使用它来设置一个简单的待办事项应用程序。这固定了我的前端到后端的困境。