我正在尝试将socket.io添加为新的角度服务。
服务器可以断开未获得authed的客户端。
客户端可以稍后再次连接服务器。
我发现问题是无法处理新连接的先前侦听器事件。是否有必要向套接字连接添加新的侦听器?如何重用以前的侦听器事件?
angular.module('services')
.factory('socket', function($rootScope, ENV) {
var socket = io.connect(ENV.chatServer,{'forceNew': true });
return {
reconnect: function (id, accesstoken) {
console.log('socket.reconnect()');
//socket.io.reconnect();
socket = io.connect(ENV.chatServer,{'forceNew': true });
socket.on('connect', function(){
socket.emit('authentication', {uid: id, accessToken: accesstoken });
});
},
disconnect: function () {
socket.io.disconnect();
},
on: function (eventName, callback) {
socket.on(eventName, function () {
var args = arguments;
$rootScope.$apply(function () {
callback.apply(socket, args);
});
});
},
emit: function (eventName, data, callback) {
socket.emit(eventName, data, function () {
var args = arguments;
$rootScope.$apply(function () {
if (callback) {
callback.apply(socket, args);
}
});
});
}
};
});