UNPKG

@emartech/faye-redis-sharded

Version:

Redis backend engine for Faye with support for sharding

44 lines (35 loc) 1.32 kB
Faye.Event = { _registry: [], on: function(element, eventName, callback, context) { var wrapped = function() { callback.call(context) }; if (element.addEventListener) element.addEventListener(eventName, wrapped, false); else element.attachEvent('on' + eventName, wrapped); this._registry.push({ _element: element, _type: eventName, _callback: callback, _context: context, _handler: wrapped }); }, detach: function(element, eventName, callback, context) { var i = this._registry.length, register; while (i--) { register = this._registry[i]; if ((element && element !== register._element) || (eventName && eventName !== register._type) || (callback && callback !== register._callback) || (context && context !== register._context)) continue; if (register._element.removeEventListener) register._element.removeEventListener(register._type, register._handler, false); else register._element.detachEvent('on' + register._type, register._handler); this._registry.splice(i,1); register = null; } } }; if (Faye.ENV.onunload !== undefined) Faye.Event.on(Faye.ENV, 'unload', Faye.Event.detach, Faye.Event);