我决定从socketIO切换到我的Angularjs应用程序的sockjs。我之前(使用socketIO)构建我的项目从来没有遇到问题,这涉及缩小和连接但是当我现在构建我的项目时,我认为这个文件给了我来自这里的问题:https://github.com/bendrucker/angular-sockjs因为它是唯一的新文件。
/*
* angular-sockjs v0.0.1
* (c) 2014 Ben Drucker http://bendrucker.me
* Based on https://github.com/btford/angular-socket-io
* License: MIT
*/
'use strict';
angular.module('bd.sockjs', [])
.provider('socketFactory', function () {
// when forwarding events, prefix the event name
var ioSocket;
// expose to provider
this.$get = function ($timeout) {
var asyncAngularify = function (socket, callback) {
return callback ? function () {
var args = arguments;
$timeout(function () {
callback.apply(socket, args);
}, 0);
} : angular.noop;
};
return function socketFactory (options) {
options = options || {};
var socket = options.socket || new SockJS(options.url);
var wrappedSocket = {
callbacks: {},
setHandler: function (event, callback) {
socket['on' + event] = asyncAngularify(socket, callback);
return this;
},
removeHandler: function(event) {
delete socket['on' + event];
return this;
},
send: function () {
return socket.send.apply(socket, arguments);
},
close: function () {
return socket.close.apply(socket, arguments);
}
};
return wrappedSocket;
};
};
});
这个文件有什么理由不会缩小? 我知道典型的Angularjs缩小问题所以我在所有文件中都使用了字符串注入语法。但是,我看不到有机会使用此文件,并且Bower安装中没有包含缩小文件。
这是浏览器控制台中的错误,它看起来像注入问题:
错误:[$ injector:unpr] http://errors.angularjs.org/1.3.0-beta.13/ $ injector / unpr?p0 = aProvider%20%3C-%20a%20%3C-ocketFactory%20%3C-%socket
更新 为了测试导致问题的是这个文件,我将文件托管在CDN而不是缩小它。现在一切正常,所以必须是这个文件导致问题。如果有人遇到这个问题,那么知道问题是什么会很有趣。
答案 0 :(得分:1)
在Github解决此问题。 @efeder大部分都是正确的(尽管它是this.$get
而不是this.get
)。问题是v0.0.1没有正确的注释,但v0.1(最新)修复了。