epicenter-libs 3.28.1 → 3.28.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/browser/{AckExtension-ac0684ea.js → AckExtension-4ccb1b3b.js} +3 -3
  3. package/dist/{module/AckExtension-248305c9.js.map → browser/AckExtension-4ccb1b3b.js.map} +1 -1
  4. package/dist/{module/ReloadExtension-3c213a58.js → browser/ReloadExtension-26e320cf.js} +3 -3
  5. package/dist/{module/ReloadExtension-3c213a58.js.map → browser/ReloadExtension-26e320cf.js.map} +1 -1
  6. package/dist/browser/{cometd-38c71404.js → cometd-009d1cc7.js} +2 -2
  7. package/dist/browser/{cometd-38c71404.js.map → cometd-009d1cc7.js.map} +1 -1
  8. package/dist/browser/{epicenter-cf2a231d.js → epicenter-ffc2b7a7.js} +6 -5
  9. package/dist/browser/epicenter-ffc2b7a7.js.map +1 -0
  10. package/dist/browser/epicenter.js +1 -1
  11. package/dist/cjs/{AckExtension-1936a6de.js → AckExtension-f8c57030.js} +3 -3
  12. package/dist/cjs/{AckExtension-1936a6de.js.map → AckExtension-f8c57030.js.map} +1 -1
  13. package/dist/cjs/{ReloadExtension-ed763de8.js → ReloadExtension-0d52f073.js} +3 -3
  14. package/dist/cjs/{ReloadExtension-ed763de8.js.map → ReloadExtension-0d52f073.js.map} +1 -1
  15. package/dist/cjs/{cometd-d9ddfa8c.js → cometd-369eb10e.js} +2 -2
  16. package/dist/cjs/{cometd-d9ddfa8c.js.map → cometd-369eb10e.js.map} +1 -1
  17. package/dist/cjs/{epicenter-28b78d70.js → epicenter-54f0befe.js} +6 -5
  18. package/dist/cjs/epicenter-54f0befe.js.map +1 -0
  19. package/dist/cjs/epicenter.js +1 -1
  20. package/dist/epicenter.js +3 -2
  21. package/dist/epicenter.js.map +1 -1
  22. package/dist/epicenter.min.js +1 -1
  23. package/dist/epicenter.min.js.map +1 -1
  24. package/dist/module/{AckExtension-248305c9.js → AckExtension-cd7b3bcb.js} +3 -3
  25. package/dist/{browser/AckExtension-ac0684ea.js.map → module/AckExtension-cd7b3bcb.js.map} +1 -1
  26. package/dist/{browser/ReloadExtension-76d13d4b.js → module/ReloadExtension-da4ee10c.js} +3 -3
  27. package/dist/{browser/ReloadExtension-76d13d4b.js.map → module/ReloadExtension-da4ee10c.js.map} +1 -1
  28. package/dist/module/{cometd-15af6326.js → cometd-c640d287.js} +2 -2
  29. package/dist/module/{cometd-15af6326.js.map → cometd-c640d287.js.map} +1 -1
  30. package/dist/module/{epicenter-ee8bdb82.js → epicenter-e4a6d235.js} +6 -5
  31. package/dist/module/epicenter-e4a6d235.js.map +1 -0
  32. package/dist/module/epicenter.js +1 -1
  33. package/package.json +1 -1
  34. package/src/adapters/cometd.ts +2 -2
  35. package/dist/browser/epicenter-cf2a231d.js.map +0 -1
  36. package/dist/cjs/epicenter-28b78d70.js.map +0 -1
  37. package/dist/module/epicenter-ee8bdb82.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cometd-38c71404.js","sources":["../../node_modules/cometd/cometd.js"],"sourcesContent":["/*\n * Copyright (c) 2008-2020 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* CometD Version 4.0.9 */\n\n(function(root, factory) {\n if (typeof exports === 'object') {\n // CommonJS.\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD.\n define([], factory);\n } else {\n // Globals.\n root.org = root.org || {};\n root.org.cometd = factory();\n }\n}(this, function() {\n /**\n * Browsers may throttle the Window scheduler,\n * so we may replace it with a Worker scheduler.\n */\n var Scheduler = function() {\n var _ids = 0;\n var _tasks = {};\n this.register = function(funktion) {\n var id = ++_ids;\n _tasks[id] = funktion;\n return id;\n };\n this.unregister = function(id) {\n var funktion = _tasks[id];\n delete _tasks[id];\n return funktion;\n };\n this.setTimeout = function(funktion, delay) {\n return window.setTimeout(funktion, delay);\n };\n this.clearTimeout = function(id) {\n window.clearTimeout(id);\n };\n };\n\n /**\n * The scheduler code that will run in the Worker.\n * Workers have a built-in `self` variable similar to `window`.\n */\n function WorkerScheduler() {\n var _tasks = {};\n self.onmessage = function(e) {\n var cmd = e.data;\n var id = _tasks[cmd.id];\n switch (cmd.type) {\n case 'setTimeout':\n _tasks[cmd.id] = self.setTimeout(function() {\n delete _tasks[cmd.id];\n self.postMessage({\n id: cmd.id\n });\n }, cmd.delay);\n break;\n case 'clearTimeout':\n delete _tasks[cmd.id];\n if (id) {\n self.clearTimeout(id);\n }\n break;\n default:\n throw 'Unknown command ' + cmd.type;\n }\n };\n }\n\n\n /**\n * Utility functions.\n */\n var Utils = {\n isString: function(value) {\n if (value === undefined || value === null) {\n return false;\n }\n return typeof value === 'string' || value instanceof String;\n },\n isArray: function(value) {\n if (value === undefined || value === null) {\n return false;\n }\n return value instanceof Array;\n },\n /**\n * Returns whether the given element is contained into the given array.\n * @param element the element to check presence for\n * @param array the array to check for the element presence\n * @return the index of the element, if present, or a negative index if the element is not present\n */\n inArray: function(element, array) {\n for (var i = 0; i < array.length; ++i) {\n if (element === array[i]) {\n return i;\n }\n }\n return -1;\n }\n };\n\n\n /**\n * A registry for transports used by the CometD object.\n */\n var TransportRegistry = function() {\n var _types = [];\n var _transports = {};\n\n this.getTransportTypes = function() {\n return _types.slice(0);\n };\n\n this.findTransportTypes = function(version, crossDomain, url) {\n var result = [];\n for (var i = 0; i < _types.length; ++i) {\n var type = _types[i];\n if (_transports[type].accept(version, crossDomain, url) === true) {\n result.push(type);\n }\n }\n return result;\n };\n\n this.negotiateTransport = function(types, version, crossDomain, url) {\n for (var i = 0; i < _types.length; ++i) {\n var type = _types[i];\n for (var j = 0; j < types.length; ++j) {\n if (type === types[j]) {\n var transport = _transports[type];\n if (transport.accept(version, crossDomain, url) === true) {\n return transport;\n }\n }\n }\n }\n return null;\n };\n\n this.add = function(type, transport, index) {\n var existing = false;\n for (var i = 0; i < _types.length; ++i) {\n if (_types[i] === type) {\n existing = true;\n break;\n }\n }\n\n if (!existing) {\n if (typeof index !== 'number') {\n _types.push(type);\n } else {\n _types.splice(index, 0, type);\n }\n _transports[type] = transport;\n }\n\n return !existing;\n };\n\n this.find = function(type) {\n for (var i = 0; i < _types.length; ++i) {\n if (_types[i] === type) {\n return _transports[type];\n }\n }\n return null;\n };\n\n this.remove = function(type) {\n for (var i = 0; i < _types.length; ++i) {\n if (_types[i] === type) {\n _types.splice(i, 1);\n var transport = _transports[type];\n delete _transports[type];\n return transport;\n }\n }\n return null;\n };\n\n this.clear = function() {\n _types = [];\n _transports = {};\n };\n\n this.reset = function(init) {\n for (var i = 0; i < _types.length; ++i) {\n _transports[_types[i]].reset(init);\n }\n };\n };\n\n\n /**\n * Base object with the common functionality for transports.\n */\n var Transport = function() {\n var _type;\n var _cometd;\n var _url;\n\n /**\n * Function invoked just after a transport has been successfully registered.\n * @param type the type of transport (for example 'long-polling')\n * @param cometd the cometd object this transport has been registered to\n * @see #unregistered()\n */\n this.registered = function(type, cometd) {\n _type = type;\n _cometd = cometd;\n };\n\n /**\n * Function invoked just after a transport has been successfully unregistered.\n * @see #registered(type, cometd)\n */\n this.unregistered = function() {\n _type = null;\n _cometd = null;\n };\n\n this._debug = function() {\n _cometd._debug.apply(_cometd, arguments);\n };\n\n this._mixin = function() {\n return _cometd._mixin.apply(_cometd, arguments);\n };\n\n this.getConfiguration = function() {\n return _cometd.getConfiguration();\n };\n\n this.getAdvice = function() {\n return _cometd.getAdvice();\n };\n\n this.setTimeout = function(funktion, delay) {\n return _cometd.setTimeout(funktion, delay);\n };\n\n this.clearTimeout = function(id) {\n _cometd.clearTimeout(id);\n };\n\n /**\n * Converts the given response into an array of bayeux messages\n * @param response the response to convert\n * @return an array of bayeux messages obtained by converting the response\n */\n this.convertToMessages = function(response) {\n if (Utils.isString(response)) {\n try {\n return JSON.parse(response);\n } catch (x) {\n this._debug('Could not convert to JSON the following string', '\"' + response + '\"');\n throw x;\n }\n }\n if (Utils.isArray(response)) {\n return response;\n }\n if (response === undefined || response === null) {\n return [];\n }\n if (response instanceof Object) {\n return [response];\n }\n throw 'Conversion Error ' + response + ', typeof ' + (typeof response);\n };\n\n /**\n * Returns whether this transport can work for the given version and cross domain communication case.\n * @param version a string indicating the transport version\n * @param crossDomain a boolean indicating whether the communication is cross domain\n * @param url the URL to connect to\n * @return true if this transport can work for the given version and cross domain communication case,\n * false otherwise\n */\n this.accept = function(version, crossDomain, url) {\n throw 'Abstract';\n };\n\n /**\n * Returns the type of this transport.\n * @see #registered(type, cometd)\n */\n this.getType = function() {\n return _type;\n };\n\n this.getURL = function() {\n return _url;\n };\n\n this.setURL = function(url) {\n _url = url;\n };\n\n this.send = function(envelope, metaConnect) {\n throw 'Abstract';\n };\n\n this.reset = function(init) {\n this._debug('Transport', _type, 'reset', init ? 'initial' : 'retry');\n };\n\n this.abort = function() {\n this._debug('Transport', _type, 'aborted');\n };\n\n this.toString = function() {\n return this.getType();\n };\n };\n\n Transport.derive = function(baseObject) {\n function F() {\n }\n\n F.prototype = baseObject;\n return new F();\n };\n\n\n /**\n * Base object with the common functionality for transports based on requests.\n * The key responsibility is to allow at most 2 outstanding requests to the server,\n * to avoid that requests are sent behind a long poll.\n * To achieve this, we have one reserved request for the long poll, and all other\n * requests are serialized one after the other.\n */\n var RequestTransport = function() {\n var _super = new Transport();\n var _self = Transport.derive(_super);\n var _requestIds = 0;\n var _metaConnectRequest = null;\n var _requests = [];\n var _envelopes = [];\n\n function _coalesceEnvelopes(envelope) {\n while (_envelopes.length > 0) {\n var envelopeAndRequest = _envelopes[0];\n var newEnvelope = envelopeAndRequest[0];\n var newRequest = envelopeAndRequest[1];\n if (newEnvelope.url === envelope.url &&\n newEnvelope.sync === envelope.sync) {\n _envelopes.shift();\n envelope.messages = envelope.messages.concat(newEnvelope.messages);\n this._debug('Coalesced', newEnvelope.messages.length, 'messages from request', newRequest.id);\n continue;\n }\n break;\n }\n }\n\n function _transportSend(envelope, request) {\n this.transportSend(envelope, request);\n request.expired = false;\n\n if (!envelope.sync) {\n var maxDelay = this.getConfiguration().maxNetworkDelay;\n var delay = maxDelay;\n if (request.metaConnect === true) {\n delay += this.getAdvice().timeout;\n }\n\n this._debug('Transport', this.getType(), 'waiting at most', delay, 'ms for the response, maxNetworkDelay', maxDelay);\n\n var self = this;\n request.timeout = this.setTimeout(function() {\n request.expired = true;\n var errorMessage = 'Request ' + request.id + ' of transport ' + self.getType() + ' exceeded ' + delay + ' ms max network delay';\n var failure = {\n reason: errorMessage\n };\n var xhr = request.xhr;\n failure.httpCode = self.xhrStatus(xhr);\n self.abortXHR(xhr);\n self._debug(errorMessage);\n self.complete(request, false, request.metaConnect);\n envelope.onFailure(xhr, envelope.messages, failure);\n }, delay);\n }\n }\n\n function _queueSend(envelope) {\n var requestId = ++_requestIds;\n var request = {\n id: requestId,\n metaConnect: false,\n envelope: envelope\n };\n\n // Consider the /meta/connect requests which should always be present.\n if (_requests.length < this.getConfiguration().maxConnections - 1) {\n _requests.push(request);\n _transportSend.call(this, envelope, request);\n } else {\n this._debug('Transport', this.getType(), 'queueing request', requestId, 'envelope', envelope);\n _envelopes.push([envelope, request]);\n }\n }\n\n function _metaConnectComplete(request) {\n var requestId = request.id;\n this._debug('Transport', this.getType(), '/meta/connect complete, request', requestId);\n if (_metaConnectRequest !== null && _metaConnectRequest.id !== requestId) {\n throw '/meta/connect request mismatch, completing request ' + requestId;\n }\n _metaConnectRequest = null;\n }\n\n function _complete(request, success) {\n var index = Utils.inArray(request, _requests);\n // The index can be negative if the request has been aborted\n if (index >= 0) {\n _requests.splice(index, 1);\n }\n\n if (_envelopes.length > 0) {\n var envelopeAndRequest = _envelopes.shift();\n var nextEnvelope = envelopeAndRequest[0];\n var nextRequest = envelopeAndRequest[1];\n this._debug('Transport dequeued request', nextRequest.id);\n if (success) {\n if (this.getConfiguration().autoBatch) {\n _coalesceEnvelopes.call(this, nextEnvelope);\n }\n _queueSend.call(this, nextEnvelope);\n this._debug('Transport completed request', request.id, nextEnvelope);\n } else {\n // Keep the semantic of calling response callbacks asynchronously after the request\n var self = this;\n this.setTimeout(function() {\n self.complete(nextRequest, false, nextRequest.metaConnect);\n var failure = {\n reason: 'Previous request failed'\n };\n var xhr = nextRequest.xhr;\n failure.httpCode = self.xhrStatus(xhr);\n nextEnvelope.onFailure(xhr, nextEnvelope.messages, failure);\n }, 0);\n }\n }\n }\n\n _self.complete = function(request, success, metaConnect) {\n if (metaConnect) {\n _metaConnectComplete.call(this, request);\n } else {\n _complete.call(this, request, success);\n }\n };\n\n /**\n * Performs the actual send depending on the transport type details.\n * @param envelope the envelope to send\n * @param request the request information\n */\n _self.transportSend = function(envelope, request) {\n throw 'Abstract';\n };\n\n _self.transportSuccess = function(envelope, request, responses) {\n if (!request.expired) {\n this.clearTimeout(request.timeout);\n this.complete(request, true, request.metaConnect);\n if (responses && responses.length > 0) {\n envelope.onSuccess(responses);\n } else {\n envelope.onFailure(request.xhr, envelope.messages, {\n httpCode: 204\n });\n }\n }\n };\n\n _self.transportFailure = function(envelope, request, failure) {\n if (!request.expired) {\n this.clearTimeout(request.timeout);\n this.complete(request, false, request.metaConnect);\n envelope.onFailure(request.xhr, envelope.messages, failure);\n }\n };\n\n function _metaConnectSend(envelope) {\n if (_metaConnectRequest !== null) {\n throw 'Concurrent /meta/connect requests not allowed, request id=' + _metaConnectRequest.id + ' not yet completed';\n }\n\n var requestId = ++_requestIds;\n this._debug('Transport', this.getType(), '/meta/connect send, request', requestId, 'envelope', envelope);\n var request = {\n id: requestId,\n metaConnect: true,\n envelope: envelope\n };\n _transportSend.call(this, envelope, request);\n _metaConnectRequest = request;\n }\n\n _self.send = function(envelope, metaConnect) {\n if (metaConnect) {\n _metaConnectSend.call(this, envelope);\n } else {\n _queueSend.call(this, envelope);\n }\n };\n\n _self.abort = function() {\n _super.abort();\n for (var i = 0; i < _requests.length; ++i) {\n var request = _requests[i];\n if (request) {\n this._debug('Aborting request', request);\n if (!this.abortXHR(request.xhr)) {\n this.transportFailure(request.envelope, request, {reason: 'abort'});\n }\n }\n }\n var metaConnectRequest = _metaConnectRequest;\n if (metaConnectRequest) {\n this._debug('Aborting /meta/connect request', metaConnectRequest);\n if (!this.abortXHR(metaConnectRequest.xhr)) {\n this.transportFailure(metaConnectRequest.envelope, metaConnectRequest, {reason: 'abort'});\n }\n }\n this.reset(true);\n };\n\n _self.reset = function(init) {\n _super.reset(init);\n _metaConnectRequest = null;\n _requests = [];\n _envelopes = [];\n };\n\n _self.abortXHR = function(xhr) {\n if (xhr) {\n try {\n var state = xhr.readyState;\n xhr.abort();\n return state !== window.XMLHttpRequest.UNSENT;\n } catch (x) {\n this._debug(x);\n }\n }\n return false;\n };\n\n _self.xhrStatus = function(xhr) {\n if (xhr) {\n try {\n return xhr.status;\n } catch (x) {\n this._debug(x);\n }\n }\n return -1;\n };\n\n return _self;\n };\n\n\n var LongPollingTransport = function() {\n var _super = new RequestTransport();\n var _self = Transport.derive(_super);\n // By default, support cross domain\n var _supportsCrossDomain = true;\n\n _self.accept = function(version, crossDomain, url) {\n return _supportsCrossDomain || !crossDomain;\n };\n\n _self.newXMLHttpRequest = function() {\n return new window.XMLHttpRequest();\n };\n\n function _copyContext(xhr) {\n try {\n // Copy external context, to be used in other environments.\n xhr.context = _self.context;\n } catch (e) {\n // May happen if XHR is wrapped by Object.seal(),\n // Object.freeze(), or Object.preventExtensions().\n this._debug('Could not copy transport context into XHR', e);\n }\n }\n\n _self.xhrSend = function(packet) {\n var xhr = _self.newXMLHttpRequest();\n _copyContext(xhr);\n xhr.withCredentials = true;\n xhr.open('POST', packet.url, packet.sync !== true);\n var headers = packet.headers;\n if (headers) {\n for (var headerName in headers) {\n if (headers.hasOwnProperty(headerName)) {\n xhr.setRequestHeader(headerName, headers[headerName]);\n }\n }\n }\n xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\n xhr.onload = function() {\n if (xhr.status === 200) {\n packet.onSuccess(xhr.responseText);\n } else {\n packet.onError(xhr.statusText);\n }\n };\n xhr.onabort = xhr.onerror = function() {\n packet.onError(xhr.statusText);\n };\n xhr.send(packet.body);\n return xhr;\n };\n\n _self.transportSend = function(envelope, request) {\n this._debug('Transport', this.getType(), 'sending request', request.id, 'envelope', envelope);\n\n var self = this;\n try {\n var sameStack = true;\n request.xhr = this.xhrSend({\n transport: this,\n url: envelope.url,\n sync: envelope.sync,\n headers: this.getConfiguration().requestHeaders,\n body: JSON.stringify(envelope.messages),\n onSuccess: function(response) {\n self._debug('Transport', self.getType(), 'received response', response);\n var success = false;\n try {\n var received = self.convertToMessages(response);\n if (received.length === 0) {\n _supportsCrossDomain = false;\n self.transportFailure(envelope, request, {\n httpCode: 204\n });\n } else {\n success = true;\n self.transportSuccess(envelope, request, received);\n }\n } catch (x) {\n self._debug(x);\n if (!success) {\n _supportsCrossDomain = false;\n var failure = {\n exception: x\n };\n failure.httpCode = self.xhrStatus(request.xhr);\n self.transportFailure(envelope, request, failure);\n }\n }\n },\n onError: function(reason, exception) {\n self._debug('Transport', self.getType(), 'received error', reason, exception);\n _supportsCrossDomain = false;\n var failure = {\n reason: reason,\n exception: exception\n };\n failure.httpCode = self.xhrStatus(request.xhr);\n if (sameStack) {\n // Keep the semantic of calling response callbacks asynchronously after the request\n self.setTimeout(function() {\n self.transportFailure(envelope, request, failure);\n }, 0);\n } else {\n self.transportFailure(envelope, request, failure);\n }\n }\n });\n sameStack = false;\n } catch (x) {\n _supportsCrossDomain = false;\n // Keep the semantic of calling response callbacks asynchronously after the request\n this.setTimeout(function() {\n self.transportFailure(envelope, request, {\n exception: x\n });\n }, 0);\n }\n };\n\n _self.reset = function(init) {\n _super.reset(init);\n _supportsCrossDomain = true;\n };\n\n return _self;\n };\n\n\n var CallbackPollingTransport = function() {\n var _super = new RequestTransport();\n var _self = Transport.derive(_super);\n var jsonp = 0;\n\n _self.accept = function(version, crossDomain, url) {\n return true;\n };\n\n _self.jsonpSend = function(packet) {\n var head = document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n\n var callbackName = '_cometd_jsonp_' + jsonp++;\n window[callbackName] = function(responseText) {\n head.removeChild(script);\n delete window[callbackName];\n packet.onSuccess(responseText);\n };\n\n var url = packet.url;\n url += url.indexOf('?') < 0 ? '?' : '&';\n url += 'jsonp=' + callbackName;\n url += '&message=' + encodeURIComponent(packet.body);\n script.src = url;\n script.async = packet.sync !== true;\n script.type = 'application/javascript';\n script.onerror = function(e) {\n packet.onError('jsonp ' + e.type);\n };\n head.appendChild(script);\n };\n\n function _failTransportFn(envelope, request, x) {\n var self = this;\n return function() {\n self.transportFailure(envelope, request, 'error', x);\n };\n }\n\n _self.transportSend = function(envelope, request) {\n var self = this;\n\n // Microsoft Internet Explorer has a 2083 URL max length\n // We must ensure that we stay within that length\n var start = 0;\n var length = envelope.messages.length;\n var lengths = [];\n while (length > 0) {\n // Encode the messages because all brackets, quotes, commas, colons, etc\n // present in the JSON will be URL encoded, taking many more characters\n var json = JSON.stringify(envelope.messages.slice(start, start + length));\n var urlLength = envelope.url.length + encodeURI(json).length;\n\n var maxLength = this.getConfiguration().maxURILength;\n if (urlLength > maxLength) {\n if (length === 1) {\n var x = 'Bayeux message too big (' + urlLength + ' bytes, max is ' + maxLength + ') ' +\n 'for transport ' + this.getType();\n // Keep the semantic of calling response callbacks asynchronously after the request\n this.setTimeout(_failTransportFn.call(this, envelope, request, x), 0);\n return;\n }\n\n --length;\n continue;\n }\n\n lengths.push(length);\n start += length;\n length = envelope.messages.length - start;\n }\n\n // Here we are sure that the messages can be sent within the URL limit\n\n var envelopeToSend = envelope;\n if (lengths.length > 1) {\n var begin = 0;\n var end = lengths[0];\n this._debug('Transport', this.getType(), 'split', envelope.messages.length, 'messages into', lengths.join(' + '));\n envelopeToSend = this._mixin(false, {}, envelope);\n envelopeToSend.messages = envelope.messages.slice(begin, end);\n envelopeToSend.onSuccess = envelope.onSuccess;\n envelopeToSend.onFailure = envelope.onFailure;\n\n for (var i = 1; i < lengths.length; ++i) {\n var nextEnvelope = this._mixin(false, {}, envelope);\n begin = end;\n end += lengths[i];\n nextEnvelope.messages = envelope.messages.slice(begin, end);\n nextEnvelope.onSuccess = envelope.onSuccess;\n nextEnvelope.onFailure = envelope.onFailure;\n this.send(nextEnvelope, request.metaConnect);\n }\n }\n\n this._debug('Transport', this.getType(), 'sending request', request.id, 'envelope', envelopeToSend);\n\n try {\n var sameStack = true;\n this.jsonpSend({\n transport: this,\n url: envelopeToSend.url,\n sync: envelopeToSend.sync,\n headers: this.getConfiguration().requestHeaders,\n body: JSON.stringify(envelopeToSend.messages),\n onSuccess: function(responses) {\n var success = false;\n try {\n var received = self.convertToMessages(responses);\n if (received.length === 0) {\n self.transportFailure(envelopeToSend, request, {\n httpCode: 204\n });\n } else {\n success = true;\n self.transportSuccess(envelopeToSend, request, received);\n }\n } catch (x) {\n self._debug(x);\n if (!success) {\n self.transportFailure(envelopeToSend, request, {\n exception: x\n });\n }\n }\n },\n onError: function(reason, exception) {\n var failure = {\n reason: reason,\n exception: exception\n };\n if (sameStack) {\n // Keep the semantic of calling response callbacks asynchronously after the request\n self.setTimeout(function() {\n self.transportFailure(envelopeToSend, request, failure);\n }, 0);\n } else {\n self.transportFailure(envelopeToSend, request, failure);\n }\n }\n });\n sameStack = false;\n } catch (xx) {\n // Keep the semantic of calling response callbacks asynchronously after the request\n this.setTimeout(function() {\n self.transportFailure(envelopeToSend, request, {\n exception: xx\n });\n }, 0);\n }\n };\n\n return _self;\n };\n\n\n var WebSocketTransport = function() {\n var _super = new Transport();\n var _self = Transport.derive(_super);\n var _cometd;\n // By default WebSocket is supported\n var _webSocketSupported = true;\n // Whether we were able to establish a WebSocket connection\n var _webSocketConnected = false;\n var _stickyReconnect = true;\n // The context contains the envelopes that have been sent\n // and the timeouts for the messages that have been sent.\n var _context = null;\n var _connecting = null;\n var _connected = false;\n var _successCallback = null;\n\n _self.reset = function(init) {\n _super.reset(init);\n _webSocketSupported = true;\n if (init) {\n _webSocketConnected = false;\n }\n _stickyReconnect = true;\n _context = null;\n _connecting = null;\n _connected = false;\n };\n\n function _forceClose(context, event) {\n if (context) {\n this.webSocketClose(context, event.code, event.reason);\n // Force immediate failure of pending messages to trigger reconnect.\n // This is needed because the server may not reply to our close()\n // and therefore the onclose function is never called.\n this.onClose(context, event);\n }\n }\n\n function _sameContext(context) {\n return context === _connecting || context === _context;\n }\n\n function _storeEnvelope(context, envelope, metaConnect) {\n var messageIds = [];\n for (var i = 0; i < envelope.messages.length; ++i) {\n var message = envelope.messages[i];\n if (message.id) {\n messageIds.push(message.id);\n }\n }\n context.envelopes[messageIds.join(',')] = [envelope, metaConnect];\n this._debug('Transport', this.getType(), 'stored envelope, envelopes', context.envelopes);\n }\n\n function _websocketConnect(context) {\n // We may have multiple attempts to open a WebSocket\n // connection, for example a /meta/connect request that\n // may take time, along with a user-triggered publish.\n // Early return if we are already connecting.\n if (_connecting) {\n return;\n }\n\n // Mangle the URL, changing the scheme from 'http' to 'ws'.\n var url = _cometd.getURL().replace(/^http/, 'ws');\n this._debug('Transport', this.getType(), 'connecting to URL', url);\n\n try {\n var protocol = _cometd.getConfiguration().protocol;\n context.webSocket = protocol ? new window.WebSocket(url, protocol) : new window.WebSocket(url);\n _connecting = context;\n } catch (x) {\n _webSocketSupported = false;\n this._debug('Exception while creating WebSocket object', x);\n throw x;\n }\n\n // By default use sticky reconnects.\n _stickyReconnect = _cometd.getConfiguration().stickyReconnect !== false;\n\n var self = this;\n var connectTimeout = _cometd.getConfiguration().connectTimeout;\n if (connectTimeout > 0) {\n context.connectTimer = this.setTimeout(function() {\n _cometd._debug('Transport', self.getType(), 'timed out while connecting to URL', url, ':', connectTimeout, 'ms');\n // The connection was not opened, close anyway.\n _forceClose.call(self, context, {code: 1000, reason: 'Connect Timeout'});\n }, connectTimeout);\n }\n\n var onopen = function() {\n _cometd._debug('WebSocket onopen', context);\n if (context.connectTimer) {\n self.clearTimeout(context.connectTimer);\n }\n\n if (_sameContext(context)) {\n _connecting = null;\n _context = context;\n _webSocketConnected = true;\n self.onOpen(context);\n } else {\n // We have a valid connection already, close this one.\n _cometd._warn('Closing extra WebSocket connection', this, 'active connection', _context);\n _forceClose.call(self, context, {code: 1000, reason: 'Extra Connection'});\n }\n };\n\n // This callback is invoked when the server sends the close frame.\n // The close frame for a connection may arrive *after* another\n // connection has been opened, so we must make sure that actions\n // are performed only if it's the same connection.\n var onclose = function(event) {\n event = event || {code: 1000};\n _cometd._debug('WebSocket onclose', context, event, 'connecting', _connecting, 'current', _context);\n\n if (context.connectTimer) {\n self.clearTimeout(context.connectTimer);\n }\n\n self.onClose(context, event);\n };\n\n var onmessage = function(wsMessage) {\n _cometd._debug('WebSocket onmessage', wsMessage, context);\n self.onMessage(context, wsMessage);\n };\n\n context.webSocket.onopen = onopen;\n context.webSocket.onclose = onclose;\n context.webSocket.onerror = function() {\n // Clients should call onclose(), but if they do not we do it here for safety.\n onclose({code: 1000, reason: 'Error'});\n };\n context.webSocket.onmessage = onmessage;\n\n this._debug('Transport', this.getType(), 'configured callbacks on', context);\n }\n\n function _webSocketSend(context, envelope, metaConnect) {\n var json = JSON.stringify(envelope.messages);\n context.webSocket.send(json);\n this._debug('Transport', this.getType(), 'sent', envelope, '/meta/connect =', metaConnect);\n\n // Manage the timeout waiting for the response.\n var maxDelay = this.getConfiguration().maxNetworkDelay;\n var delay = maxDelay;\n if (metaConnect) {\n delay += this.getAdvice().timeout;\n _connected = true;\n }\n\n var self = this;\n var messageIds = [];\n for (var i = 0; i < envelope.messages.length; ++i) {\n (function() {\n var message = envelope.messages[i];\n if (message.id) {\n messageIds.push(message.id);\n context.timeouts[message.id] = self.setTimeout(function() {\n _cometd._debug('Transport', self.getType(), 'timing out message', message.id, 'after', delay, 'on', context);\n _forceClose.call(self, context, {code: 1000, reason: 'Message Timeout'});\n }, delay);\n }\n })();\n }\n\n this._debug('Transport', this.getType(), 'waiting at most', delay, 'ms for messages', messageIds, 'maxNetworkDelay', maxDelay, ', timeouts:', context.timeouts);\n }\n\n _self._notifySuccess = function(fn, messages) {\n fn.call(this, messages);\n };\n\n _self._notifyFailure = function(fn, context, messages, failure) {\n fn.call(this, context, messages, failure);\n };\n\n function _send(context, envelope, metaConnect) {\n try {\n if (context === null) {\n context = _connecting || {\n envelopes: {},\n timeouts: {}\n };\n _storeEnvelope.call(this, context, envelope, metaConnect);\n _websocketConnect.call(this, context);\n } else {\n _storeEnvelope.call(this, context, envelope, metaConnect);\n _webSocketSend.call(this, context, envelope, metaConnect);\n }\n } catch (x) {\n // Keep the semantic of calling response callbacks asynchronously after the request.\n var self = this;\n this.setTimeout(function() {\n _forceClose.call(self, context, {\n code: 1000,\n reason: 'Exception',\n exception: x\n });\n }, 0);\n }\n }\n\n _self.onOpen = function(context) {\n var envelopes = context.envelopes;\n this._debug('Transport', this.getType(), 'opened', context, 'pending messages', envelopes);\n for (var key in envelopes) {\n if (envelopes.hasOwnProperty(key)) {\n var element = envelopes[key];\n var envelope = element[0];\n var metaConnect = element[1];\n // Store the success callback, which is independent from the envelope,\n // so that it can be used to notify arrival of messages.\n _successCallback = envelope.onSuccess;\n _webSocketSend.call(this, context, envelope, metaConnect);\n }\n }\n };\n\n _self.onMessage = function(context, wsMessage) {\n this._debug('Transport', this.getType(), 'received websocket message', wsMessage, context);\n\n var close = false;\n var messages = this.convertToMessages(wsMessage.data);\n var messageIds = [];\n for (var i = 0; i < messages.length; ++i) {\n var message = messages[i];\n\n // Detect if the message is a response to a request we made.\n // If it's a meta message, for sure it's a response; otherwise it's\n // a publish message and publish responses don't have the data field.\n if (/^\\/meta\\//.test(message.channel) || message.data === undefined) {\n if (message.id) {\n messageIds.push(message.id);\n\n var timeout = context.timeouts[message.id];\n if (timeout) {\n this.clearTimeout(timeout);\n delete context.timeouts[message.id];\n this._debug('Transport', this.getType(), 'removed timeout for message', message.id, ', timeouts', context.timeouts);\n }\n }\n }\n\n if ('/meta/connect' === message.channel) {\n _connected = false;\n }\n if ('/meta/disconnect' === message.channel && !_connected) {\n close = true;\n }\n }\n\n // Remove the envelope corresponding to the messages.\n var removed = false;\n var envelopes = context.envelopes;\n for (var j = 0; j < messageIds.length; ++j) {\n var id = messageIds[j];\n for (var key in envelopes) {\n if (envelopes.hasOwnProperty(key)) {\n var ids = key.split(',');\n var index = Utils.inArray(id, ids);\n if (index >= 0) {\n removed = true;\n ids.splice(index, 1);\n var envelope = envelopes[key][0];\n var metaConnect = envelopes[key][1];\n delete envelopes[key];\n if (ids.length > 0) {\n envelopes[ids.join(',')] = [envelope, metaConnect];\n }\n break;\n }\n }\n }\n }\n if (removed) {\n this._debug('Transport', this.getType(), 'removed envelope, envelopes', envelopes);\n }\n\n this._notifySuccess(_successCallback, messages);\n\n if (close) {\n this.webSocketClose(context, 1000, 'Disconnect');\n }\n };\n\n _self.onClose = function(context, event) {\n this._debug('Transport', this.getType(), 'closed', context, event);\n\n if (_sameContext(context)) {\n // Remember if we were able to connect.\n // This close event could be due to server shutdown,\n // and if it restarts we want to try websocket again.\n _webSocketSupported = _stickyReconnect && _webSocketConnected;\n _connecting = null;\n _context = null;\n }\n\n var timeouts = context.timeouts;\n context.timeouts = {};\n for (var id in timeouts) {\n if (timeouts.hasOwnProperty(id)) {\n this.clearTimeout(timeouts[id]);\n }\n }\n\n var envelopes = context.envelopes;\n context.envelopes = {};\n for (var key in envelopes) {\n if (envelopes.hasOwnProperty(key)) {\n var envelope = envelopes[key][0];\n var metaConnect = envelopes[key][1];\n if (metaConnect) {\n _connected = false;\n }\n var failure = {\n websocketCode: event.code,\n reason: event.reason\n };\n if (event.exception) {\n failure.exception = event.exception;\n }\n this._notifyFailure(envelope.onFailure, context, envelope.messages, failure);\n }\n }\n };\n\n _self.registered = function(type, cometd) {\n _super.registered(type, cometd);\n _cometd = cometd;\n };\n\n _self.accept = function(version, crossDomain, url) {\n this._debug('Transport', this.getType(), 'accept, supported:', _webSocketSupported);\n // Using !! to return a boolean (and not the WebSocket object).\n return _webSocketSupported && !!window.WebSocket && _cometd.websocketEnabled !== false;\n };\n\n _self.send = function(envelope, metaConnect) {\n this._debug('Transport', this.getType(), 'sending', envelope, '/meta/connect =', metaConnect);\n _send.call(this, _context, envelope, metaConnect);\n };\n\n _self.webSocketClose = function(context, code, reason) {\n try {\n if (context.webSocket) {\n context.webSocket.close(code, reason);\n }\n } catch (x) {\n this._debug(x);\n }\n };\n\n _self.abort = function() {\n _super.abort();\n _forceClose.call(this, _context, {code: 1000, reason: 'Abort'});\n this.reset(true);\n };\n\n return _self;\n };\n\n\n /**\n * The constructor for a CometD object, identified by an optional name.\n * The default name is the string 'default'.\n * @param name the optional name of this cometd object\n */\n var CometD = function(name) {\n var _scheduler = new Scheduler();\n var _cometd = this;\n var _name = name || 'default';\n var _crossDomain = false;\n var _transports = new TransportRegistry();\n var _transport;\n var _status = 'disconnected';\n var _messageId = 0;\n var _clientId = null;\n var _batch = 0;\n var _messageQueue = [];\n var _internalBatch = false;\n var _listenerId = 0;\n var _listeners = {};\n var _backoff = 0;\n var _scheduledSend = null;\n var _extensions = [];\n var _advice = {};\n var _handshakeProps;\n var _handshakeCallback;\n var _callbacks = {};\n var _remoteCalls = {};\n var _reestablish = false;\n var _connected = false;\n var _unconnectTime = 0;\n var _handshakeMessages = 0;\n var _metaConnect = null;\n var _config = {\n useWorkerScheduler: true,\n protocol: null,\n stickyReconnect: true,\n connectTimeout: 0,\n maxConnections: 2,\n backoffIncrement: 1000,\n maxBackoff: 60000,\n logLevel: 'info',\n maxNetworkDelay: 10000,\n requestHeaders: {},\n appendMessageTypeToURL: true,\n autoBatch: false,\n urls: {},\n maxURILength: 2000,\n advice: {\n timeout: 60000,\n interval: 0,\n reconnect: undefined,\n maxInterval: 0\n }\n };\n\n function _fieldValue(object, name) {\n try {\n return object[name];\n } catch (x) {\n return undefined;\n }\n }\n\n /**\n * Mixes in the given objects into the target object by copying the properties.\n * @param deep if the copy must be deep\n * @param target the target object\n * @param objects the objects whose properties are copied into the target\n */\n this._mixin = function(deep, target, objects) {\n var result = target || {};\n\n // Skip first 2 parameters (deep and target), and loop over the others\n for (var i = 2; i < arguments.length; ++i) {\n var object = arguments[i];\n\n if (object === undefined || object === null) {\n continue;\n }\n\n for (var propName in object) {\n if (object.hasOwnProperty(propName)) {\n var prop = _fieldValue(object, propName);\n var targ = _fieldValue(result, propName);\n\n // Avoid infinite loops\n if (prop === target) {\n continue;\n }\n // Do not mixin undefined values\n if (prop === undefined) {\n continue;\n }\n\n if (deep && typeof prop === 'object' && prop !== null) {\n if (prop instanceof Array) {\n result[propName] = this._mixin(deep, targ instanceof Array ? targ : [], prop);\n } else {\n var source = typeof targ === 'object' && !(targ instanceof Array) ? targ : {};\n result[propName] = this._mixin(deep, source, prop);\n }\n } else {\n result[propName] = prop;\n }\n }\n }\n }\n\n return result;\n };\n\n function _isString(value) {\n return Utils.isString(value);\n }\n\n function _isFunction(value) {\n if (value === undefined || value === null) {\n return false;\n }\n return typeof value === 'function';\n }\n\n function _zeroPad(value, length) {\n var result = '';\n while (--length > 0) {\n if (value >= Math.pow(10, length)) {\n break;\n }\n result += '0';\n }\n result += value;\n return result;\n }\n\n function _log(level, args) {\n if (window.console) {\n var logger = window.console[level];\n if (_isFunction(logger)) {\n var now = new Date();\n [].splice.call(args, 0, 0, _zeroPad(now.getHours(), 2) + ':' + _zeroPad(now.getMinutes(), 2) + ':' +\n _zeroPad(now.getSeconds(), 2) + '.' + _zeroPad(now.getMilliseconds(), 3));\n logger.apply(window.console, args);\n }\n }\n }\n\n this._warn = function() {\n _log('warn', arguments);\n };\n\n this._info = function() {\n if (_config.logLevel !== 'warn') {\n _log('info', arguments);\n }\n };\n\n this._debug = function() {\n if (_config.logLevel === 'debug') {\n _log('debug', arguments);\n }\n };\n\n function _splitURL(url) {\n // [1] = protocol://,\n // [2] = host:port,\n // [3] = host,\n // [4] = IPv6_host,\n // [5] = IPv4_host,\n // [6] = :port,\n // [7] = port,\n // [8] = uri,\n // [9] = rest (query / fragment)\n return new RegExp('(^https?://)?(((\\\\[[^\\\\]]+])|([^:/?#]+))(:(\\\\d+))?)?([^?#]*)(.*)?').exec(url);\n }\n\n /**\n * Returns whether the given hostAndPort is cross domain.\n * The default implementation checks against window.location.host\n * but this function can be overridden to make it work in non-browser\n * environments.\n *\n * @param hostAndPort the host and port in format host:port\n * @return whether the given hostAndPort is cross domain\n */\n this._isCrossDomain = function(hostAndPort) {\n if (window.location && window.location.host) {\n if (hostAndPort) {\n return hostAndPort !== window.location.host;\n }\n }\n return false;\n };\n\n function _configure(configuration) {\n _cometd._debug('Configuring cometd object with', configuration);\n // Support old style param, where only the Bayeux server URL was passed.\n if (_isString(configuration)) {\n configuration = {\n url: configuration\n };\n }\n if (!configuration) {\n configuration = {};\n }\n\n _config = _cometd._mixin(false, _config, configuration);\n\n var url = _cometd.getURL();\n if (!url) {\n throw 'Missing required configuration parameter \\'url\\' specifying the Bayeux server URL';\n }\n\n // Check if we're cross domain.\n var urlParts = _splitURL(url);\n var hostAndPort = urlParts[2];\n var uri = urlParts[8];\n var afterURI = urlParts[9];\n _crossDomain = _cometd._isCrossDomain(hostAndPort);\n\n // Check if appending extra path is supported.\n if (_config.appendMessageTypeToURL) {\n if (afterURI !== undefined && afterURI.length > 0) {\n _cometd._info('Appending message type to URI ' + uri + afterURI + ' is not supported, disabling \\'appendMessageTypeToURL\\' configuration');\n _config.appendMessageTypeToURL = false;\n } else {\n var uriSegments = uri.split('/');\n var lastSegmentIndex = uriSegments.length - 1;\n if (uri.match(/\\/$/)) {\n lastSegmentIndex -= 1;\n }\n if (uriSegments[lastSegmentIndex].indexOf('.') >= 0) {\n // Very likely the CometD servlet's URL pattern is mapped to an extension, such as *.cometd\n // It will be difficult to add the extra path in this case\n _cometd._info('Appending message type to URI ' + uri + ' is not supported, disabling \\'appendMessageTypeToURL\\' configuration');\n _config.appendMessageTypeToURL = false;\n }\n }\n }\n\n if (window.Worker && window.Blob && window.URL && _config.useWorkerScheduler) {\n var code = WorkerScheduler.toString();\n // Remove the function declaration, the opening brace and the closing brace.\n code = code.substring(code.indexOf('{') + 1, code.lastIndexOf('}'));\n var blob = new window.Blob([code], {\n type: 'application/json'\n });\n var blobURL = window.URL.createObjectURL(blob);\n var worker = new window.Worker(blobURL);\n _scheduler.setTimeout = function(funktion, delay) {\n var id = _scheduler.register(funktion);\n worker.postMessage({\n id: id,\n type: 'setTimeout',\n delay: delay\n });\n return id;\n };\n _scheduler.clearTimeout = function(id) {\n _scheduler.unregister(id);\n worker.postMessage({\n id: id,\n type: 'clearTimeout'\n });\n };\n worker.onmessage = function(e) {\n var id = e.data.id;\n var funktion = _scheduler.unregister(id);\n if (funktion) {\n funktion();\n }\n };\n }\n }\n\n function _removeListener(subscription) {\n if (subscription) {\n var subscriptions = _listeners[subscription.channel];\n if (subscriptions && subscriptions[subscription.id]) {\n delete subscriptions[subscription.id];\n _cometd._debug('Removed', subscription.listener ? 'listener' : 'subscription', subscription);\n }\n }\n }\n\n function _removeSubscription(subscription) {\n if (subscription && !subscription.listener) {\n _removeListener(subscription);\n }\n }\n\n function _clearSubscriptions() {\n for (var channel in _listeners) {\n if (_listeners.hasOwnProperty(channel)) {\n var subscriptions = _listeners[channel];\n if (subscriptions) {\n for (var id in subscriptions) {\n if (subscriptions.hasOwnProperty(id)) {\n _removeSubscription(subscriptions[id]);\n }\n }\n }\n }\n }\n }\n\n function _setStatus(newStatus) {\n if (_status !== newStatus) {\n _cometd._debug('Status', _status, '->', newStatus);\n _status = newStatus;\n }\n }\n\n function _isDisconnected() {\n return _status === 'disconnecting' || _status === 'disconnected';\n }\n\n function _nextMessageId() {\n var result = ++_messageId;\n return '' + result;\n }\n\n function _applyExtension(scope, callback, name, message, outgoing) {\n try {\n return callback.call(scope, message);\n } catch (x) {\n var handler = _cometd.onExtensionException;\n if (_isFunction(handler)) {\n _cometd._debug('Invoking extension exception handler', name, x);\n try {\n handler.call(_cometd, x, name, outgoing, message);\n } catch (xx) {\n _cometd._info('Exception during execution of extension exception handler', name, xx);\n }\n } else {\n _cometd._info('Exception during execution of extension', name, x);\n }\n return message;\n }\n }\n\n function _applyIncomingExtensions(message) {\n for (var i = 0; i < _extensions.length; ++i) {\n if (message === undefined || message === null) {\n break;\n }\n\n var extension = _extensions[i];\n var callback = extension.extension.incoming;\n if (_isFunction(callback)) {\n var result = _applyExtension(extension.extension, callback, extension.name, message, false);\n message = result === undefined ? message : result;\n }\n }\n return message;\n }\n\n function _applyOutgoingExtensions(message) {\n for (var i = _extensions.length - 1; i >= 0; --i) {\n if (message === undefined || message === null) {\n break;\n }\n\n var extension = _extensions[i];\n var callback = extension.extension.outgoing;\n if (_isFunction(callback)) {\n var result = _applyExtension(extension.extension, callback, extension.name, message, true);\n message = result === undefined ? message : result;\n }\n }\n return message;\n }\n\n function _notify(channel, message) {\n var subscriptions = _listeners[channel];\n if (subscriptions) {\n for (var id in subscriptions) {\n if (subscriptions.hasOwnProperty(id)) {\n var subscription = subscriptions[id];\n // Subscriptions may come and go, so the array may have 'holes'\n if (subscription) {\n try {\n subscription.callback.call(subscription.scope, message);\n } catch (x) {\n var handler = _cometd.onListenerException;\n if (_isFunction(handler)) {\n _cometd._debug('Invoking listener exception handler', subscription, x);\n try {\n handler.call(_cometd, x, subscription, subscription.listener, message);\n } catch (xx) {\n _cometd._info('Exception during execution of listener exception handler', subscription, xx);\n }\n } else {\n _cometd._info('Exception during execution of listener', subscription, message, x);\n }\n }\n }\n }\n }\n }\n }\n\n function _notifyListeners(channel, message) {\n // Notify direct listeners\n _notify(channel, message);\n\n // Notify the globbing listeners\n var channelParts = channel.split('/');\n var last = channelParts.length - 1;\n for (var i = last; i > 0; --i) {\n var channelPart = channelParts.slice(0, i).join('/') + '/*';\n // We don't want to notify /foo/* if the channel is /foo/bar/baz,\n // so we stop at the first non recursive globbing\n if (i === last) {\n _notify(channelPart, message);\n }\n // Add the recursive globber and notify\n channelPart += '*';\n _notify(channelPart, message);\n }\n }\n\n function _cancelDelayedSend() {\n if (_scheduledSend !== null) {\n _cometd.clearTimeout(_scheduledSend);\n }\n _scheduledSend = null;\n }\n\n function _delayedSend(operation, delay) {\n _cancelDelayedSend();\n var time = _advice.interval + delay;\n _cometd._debug('Function scheduled in', time, 'ms, interval =', _advice.interval, 'backoff =', _backoff, operation);\n _scheduledSend = _cometd.setTimeout(operation, time);\n }\n\n // Needed to break cyclic dependencies between function definitions\n var _handleMessages;\n var _handleFailure;\n\n /**\n * Delivers the messages to the CometD server\n * @param messages the array of messages to send\n * @param metaConnect true if this send is on /meta/connect\n * @param extraPath an extra path to append to the Bayeux server URL\n */\n function _send(messages, metaConnect, extraPath) {\n // We must be sure that the messages have a clientId.\n // This is not guaranteed since the handshake may take time to return\n // (and hence the clientId is not known yet) and the application\n // may create other messages.\n for (var i = 0; i < messages.length; ++i) {\n var message = messages[i];\n var messageId = message.id;\n\n if (_clientId) {\n message.clientId = _clientId;\n }\n\n message = _applyOutgoingExtensions(message);\n if (message !== undefined && message !== null) {\n // Extensions may have modified the message id, but we need to own it.\n message.id = messageId;\n messages[i] = message;\n } else {\n delete _callbacks[messageId];\n messages.splice(i--, 1);\n }\n }\n\n if (messages.length === 0) {\n return;\n }\n\n if (metaConnect) {\n _metaConnect = messages[0];\n }\n\n var url = _cometd.getURL();\n if (_config.appendMessageTypeToURL) {\n // If url does not end with '/', then append it\n if (!url.match(/\\/$/)) {\n url = url + '/';\n }\n if (extraPath) {\n url = url + extraPath;\n }\n }\n\n var envelope = {\n url: url,\n sync: false,\n messages: messages,\n onSuccess: function(rcvdMessages) {\n try {\n _handleMessages.call(_cometd, rcvdMessages);\n } catch (x) {\n _cometd._info('Exception during handling of messages', x);\n }\n },\n onFailure: function(conduit, messages, failure) {\n try {\n var transport = _cometd.getTransport();\n failure.connectionType = transport ? transport.getType() : \"unknown\";\n _handleFailure.call(_cometd, conduit, messages, failure);\n } catch (x) {\n _cometd._info('Exception during handling of failure', x);\n }\n }\n };\n _cometd._debug('Send', envelope);\n _transport.send(envelope, metaConnect);\n }\n\n function _queueSend(message) {\n if (_batch > 0 || _internalBatch === true) {\n _messageQueue.push(message);\n } else {\n _send([message], false);\n }\n }\n\n /**\n * Sends a complete bayeux message.\n * This method is exposed as a public so that extensions may use it\n * to send bayeux message directly, for example in case of re-sending\n * messages that have already been sent but that for some reason must\n * be resent.\n */\n this.send = _queueSend;\n\n function _resetBackoff() {\n _backoff = 0;\n }\n\n function _increaseBackoff() {\n if (_backoff < _config.maxBackoff) {\n _backoff += _config.backoffIncrement;\n }\n return _backoff;\n }\n\n /**\n * Starts a the batch of messages to be sent in a single request.\n * @see #_endBatch(sendMessages)\n */\n function _startBatch() {\n ++_batch;\n _cometd._debug('Starting batch, depth', _batch);\n }\n\n function _flushBatch() {\n var messages = _messageQueue;\n _messageQueue = [];\n if (messages.length > 0) {\n _send(messages, false);\n }\n }\n\n /**\n * Ends the batch of messages to be sent in a single request,\n * optionally sending messages present in the message queue depending\n * on the given argument.\n * @see #_startBatch()\n */\n function _endBatch() {\n --_batch;\n _cometd._debug('Ending batch, depth', _batch);\n if (_batch < 0) {\n throw 'Calls to startBatch() and endBatch() are not paired';\n }\n\n if (_batch === 0 && !_isDisconnected() && !_internalBatch) {\n _flushBatch();\n }\n }\n\n /**\n * Sends the connect message\n */\n function _connect() {\n if (!_isDisconnected()) {\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: '/meta/connect',\n connectionType: _transport.getType()\n };\n\n // In case of reload or temporary loss of connection\n // we want the next successful connect to return immediately\n // instead of being held by the server, so that connect listeners\n // can be notified that the connection has been re-established\n if (!_connected) {\n bayeuxMessage.advice = {\n timeout: 0\n };\n }\n\n _setStatus('connecting');\n _cometd._debug('Connect sent', bayeuxMessage);\n _send([bayeuxMessage], true, 'connect');\n _setStatus('connected');\n }\n }\n\n function _delayedConnect(delay) {\n _setStatus('connecting');\n _delayedSend(function() {\n _connect();\n }, delay);\n }\n\n function _updateAdvice(newAdvice) {\n if (newAdvice) {\n _advice = _cometd._mixin(false, {}, _config.advice, newAdvice);\n _cometd._debug('New advice', _advice);\n }\n }\n\n function _disconnect(abort) {\n _cancelDelayedSend();\n if (abort && _transport) {\n _transport.abort();\n }\n _crossDomain = false;\n _transport = null;\n _setStatus('disconnected');\n _clientId = null;\n _batch = 0;\n _resetBackoff();\n _reestablish = false;\n _connected = false;\n _unconnectTime = 0;\n _metaConnect = null;\n\n // Fail any existing queued message\n if (_messageQueue.length > 0) {\n var messages = _messageQueue;\n _messageQueue = [];\n _handleFailure.call(_cometd, undefined, messages, {\n reason: 'Disconnected'\n });\n }\n }\n\n function _notifyTransportException(oldTransport, newTransport, failure) {\n var handler = _cometd.onTransportException;\n if (_isFunction(handler)) {\n _cometd._debug('Invoking transport exception handler', oldTransport, newTransport, failure);\n try {\n handler.call(_cometd, failure, oldTransport, newTransport);\n } catch (x) {\n _cometd._info('Exception during execution of transport exception handler', x);\n }\n }\n }\n\n /**\n * Sends the initial handshake message\n */\n function _handshake(handshakeProps, handshakeCallback) {\n if (_isFunction(handshakeProps)) {\n handshakeCallback = handshakeProps;\n handshakeProps = undefined;\n }\n\n _clientId = null;\n\n _clearSubscriptions();\n\n // Reset the transports if we're not retrying the handshake\n if (_isDisconnected()) {\n _transports.reset(true);\n }\n\n // Reset the advice.\n _updateAdvice({});\n\n _batch = 0;\n\n // Mark the start of an internal batch.\n // This is needed because handshake and connect are async.\n // It may happen that the application calls init() then subscribe()\n // and the subscribe message is sent before the connect message, if\n // the subscribe message is not held until the connect message is sent.\n // So here we start a batch to hold temporarily any message until\n // the connection is fully established.\n _internalBatch = true;\n\n // Save the properties provided by the user, so that\n // we can reuse them during automatic re-handshake\n _handshakeProps = handshakeProps;\n _handshakeCallback = handshakeCallback;\n\n var version = '1.0';\n\n // Figure out the transports to send to the server\n var url = _cometd.getURL();\n var transportTypes = _transports.findTransportTypes(version, _crossDomain, url);\n\n var bayeuxMessage = {\n id: _nextMessageId(),\n version: version,\n minimumVersion: version,\n channel: '/meta/handshake',\n supportedConnectionTypes: transportTypes,\n advice: {\n timeout: _advice.timeout,\n interval: _advice.interval\n }\n };\n // Do not allow the user to override important fields.\n var message = _cometd._mixin(false, {}, _handshakeProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, handshakeCallback);\n\n // Pick up the first available transport as initial transport\n // since we don't know if the server supports it\n if (!_transport) {\n _transport = _transports.negotiateTransport(transportTypes, version, _crossDomain, url);\n if (!_transport) {\n var failure = 'Could not find initial transport among: ' + _transports.getTransportTypes();\n _cometd._warn(failure);\n throw failure;\n }\n }\n\n _cometd._debug('Initial transport is', _transport.getType());\n\n // We started a batch to hold the application messages,\n // so here we must bypass it and send immediately.\n _setStatus('handshaking');\n _cometd._debug('Handshake sent', message);\n _send([message], false, 'handshake');\n }\n\n function _delayedHandshake(delay) {\n _setStatus('handshaking');\n\n // We will call _handshake() which will reset _clientId, but we want to avoid\n // that between the end of this method and the call to _handshake() someone may\n // call publish() (or other methods that call _queueSend()).\n _internalBatch = true;\n\n _delayedSend(function() {\n _handshake(_handshakeProps, _handshakeCallback);\n }, delay);\n }\n\n function _notifyCallback(callback, message) {\n try {\n callback.call(_cometd, message);\n } catch (x) {\n var handler = _cometd.onCallbackException;\n if (_isFunction(handler)) {\n _cometd._debug('Invoking callback exception handler', x);\n try {\n handler.call(_cometd, x, message);\n } catch (xx) {\n _cometd._info('Exception during execution of callback exception handler', xx);\n }\n } else {\n _cometd._info('Exception during execution of message callback', x);\n }\n }\n }\n\n this._getCallback = function(messageId) {\n return _callbacks[messageId];\n };\n\n this._putCallback = function(messageId, callback) {\n var result = this._getCallback(messageId);\n if (_isFunction(callback)) {\n _callbacks[messageId] = callback;\n }\n return result;\n };\n\n function _handleCallback(message) {\n var callback = _cometd._getCallback([message.id]);\n if (_isFunction(callback)) {\n delete _callbacks[message.id];\n _notifyCallback(callback, message);\n }\n }\n\n function _handleRemoteCall(message) {\n var context = _remoteCalls[message.id];\n delete _remoteCalls[message.id];\n if (context) {\n _cometd._debug('Handling remote call response for', message, 'with context', context);\n\n // Clear the timeout, if present.\n var timeout = context.timeout;\n if (timeout) {\n _cometd.clearTimeout(timeout);\n }\n\n var callback = context.callback;\n if (_isFunction(callback)) {\n _notifyCallback(callback, message);\n return true;\n }\n }\n return false;\n }\n\n this.onTransportFailure = function(message, failureInfo, failureHandler) {\n this._debug('Transport failure', failureInfo, 'for', message);\n\n var transports = this.getTransportRegistry();\n var url = this.getURL();\n var crossDomain = this._isCrossDomain(_splitURL(url)[2]);\n var version = '1.0';\n var transportTypes = transports.findTransportTypes(version, crossDomain, url);\n\n if (failureInfo.action === 'none') {\n if (message.channel === '/meta/handshake') {\n if (!failureInfo.transport) {\n var failure = 'Could not negotiate transport, client=[' + transportTypes + '], server=[' + message.supportedConnectionTypes + ']';\n this._warn(failure);\n _notifyTransportException(_transport.getType(), null, {\n reason: failure,\n connectionType: _transport.getType(),\n transport: _transport\n });\n }\n }\n } else {\n failureInfo.delay = this.getBackoffPeriod();\n // Different logic depending on whether we are handshaking or connecting.\n if (message.channel === '/meta/handshake') {\n if (!failureInfo.transport) {\n // The transport is invalid, try to negotiate again.\n var oldTransportType = _transport ? _transport.getType() : null;\n var newTransport = transports.negotiateTransport(transportTypes, version, crossDomain, url);\n if (!newTransport) {\n this._warn('Could not negotiate transport, client=[' + transportTypes + ']');\n _notifyTransportException(oldTransportType, null, message.failure);\n failureInfo.action = 'none';\n } else {\n var newTransportType = newTransport.getType();\n this._debug('Transport', oldTransportType, '->', newTransportType);\n _notifyTransportException(oldTransportType, newTransportType, message.failure);\n failureInfo.action = 'handshake';\n failureInfo.transport = newTransport;\n }\n }\n\n if (failureInfo.action !== 'none') {\n this.increaseBackoffPeriod();\n }\n } else {\n var now = new Date().getTime();\n\n if (_unconnectTime === 0) {\n _unconnectTime = now;\n }\n\n if (failureInfo.action === 'retry') {\n failureInfo.delay = this.increaseBackoffPeriod();\n // Check whether we may switch to handshaking.\n var maxInterval = _advice.maxInterval;\n if (maxInterval > 0) {\n var expiration = _advice.timeout + _advice.interval + maxInterval;\n var unconnected = now - _unconnectTime;\n if (unconnected + _backoff > expiration) {\n failureInfo.action = 'handshake';\n }\n }\n }\n\n if (failureInfo.action === 'handshake') {\n failureInfo.delay = 0;\n transports.reset(false);\n this.resetBackoffPeriod();\n }\n }\n }\n\n failureHandler.call(_cometd, failureInfo);\n };\n\n function _handleTransportFailure(failureInfo) {\n _cometd._debug('Transport failure handling', failureInfo);\n\n if (failureInfo.transport) {\n _transport = failureInfo.transport;\n }\n\n if (failureInfo.url) {\n _transport.setURL(failureInfo.url);\n }\n\n var action = failureInfo.action;\n var delay = failureInfo.delay || 0;\n switch (action) {\n case 'handshake':\n _delayedHandshake(delay);\n break;\n case 'retry':\n _delayedConnect(delay);\n break;\n case 'none':\n _disconnect(true);\n break;\n default:\n throw 'Unknown action ' + action;\n }\n }\n\n function _failHandshake(message, failureInfo) {\n _handleCallback(message);\n _notifyListeners('/meta/handshake', message);\n _notifyListeners('/meta/unsuccessful', message);\n\n // The listeners may have disconnected.\n if (_isDisconnected()) {\n failureInfo.action = 'none';\n }\n\n _cometd.onTransportFailure.call(_cometd, message, failureInfo, _handleTransportFailure);\n }\n\n function _handshakeResponse(message) {\n var url = _cometd.getURL();\n if (message.successful) {\n var crossDomain = _cometd._isCrossDomain(_splitURL(url)[2]);\n var newTransport = _transports.negotiateTransport(message.supportedConnectionTypes, message.version, crossDomain, url);\n if (newTransport === null) {\n message.successful = false;\n _failHandshake(message, {\n cause: 'negotiation',\n action: 'none',\n transport: null\n });\n return;\n } else if (_transport !== newTransport) {\n _cometd._debug('Transport', _transport.getType(), '->', newTransport.getType());\n _transport = newTransport;\n }\n\n _clientId = message.clientId;\n\n // End the internal batch and allow held messages from the application\n // to go to the server (see _handshake() where we start the internal batch).\n _internalBatch = false;\n _flushBatch();\n\n // Here the new transport is in place, as well as the clientId, so\n // the listeners can perform a publish() if they want.\n // Notify the listeners before the connect below.\n message.reestablish = _reestablish;\n _reestablish = true;\n\n _handleCallback(message);\n _notifyListeners('/meta/handshake', message);\n\n _handshakeMessages = message['x-messages'] || 0;\n\n var action = _isDisconnected() ? 'none' : _advice.reconnect || 'retry';\n switch (action) {\n case 'retry':\n _resetBackoff();\n if (_handshakeMessages === 0) {\n _delayedConnect(0);\n } else {\n _cometd._debug('Processing', _handshakeMessages, 'handshake-delivered messages');\n }\n break;\n case 'none':\n _disconnect(true);\n break;\n default:\n throw 'Unrecognized advice action ' + action;\n }\n } else {\n _failHandshake(message, {\n cause: 'unsuccessful',\n action: _advice.reconnect || 'handshake',\n transport: _transport\n });\n }\n }\n\n function _handshakeFailure(message) {\n _failHandshake(message, {\n cause: 'failure',\n action: 'handshake',\n transport: null\n });\n }\n\n function _matchMetaConnect(connect) {\n if (_status === 'disconnected') {\n return true;\n }\n if (_metaConnect && _metaConnect.id === connect.id) {\n _metaConnect = null;\n return true;\n }\n return false;\n }\n\n function _failConnect(message, failureInfo) {\n // Notify the listeners after the status change but before the next action.\n _notifyListeners('/meta/connect', message);\n _notifyListeners('/meta/unsuccessful', message);\n\n // The listeners may have disconnected.\n if (_isDisconnected()) {\n failureInfo.action = 'none';\n }\n\n _cometd.onTransportFailure.call(_cometd, message, failureInfo, _handleTransportFailure);\n }\n\n function _connectResponse(message) {\n if (_matchMetaConnect(message)) {\n _connected = message.successful;\n if (_connected) {\n _notifyListeners('/meta/connect', message);\n\n // Normally, the advice will say \"reconnect: 'retry', interval: 0\"\n // and the server will hold the request, so when a response returns\n // we immediately call the server again (long polling).\n // Listeners can call disconnect(), so check the state after they run.\n var action = _isDisconnected() ? 'none' : _advice.reconnect || 'retry';\n switch (action) {\n case 'retry':\n _resetBackoff();\n _delayedConnect(_backoff);\n break;\n case 'none':\n _disconnect(false);\n break;\n default:\n throw 'Unrecognized advice action ' + action;\n }\n } else {\n _failConnect(message, {\n cause: 'unsuccessful',\n action: _advice.reconnect || 'retry',\n transport: _transport\n });\n }\n } else {\n _cometd._debug('Mismatched /meta/connect reply', message);\n }\n }\n\n function _connectFailure(message) {\n if (_matchMetaConnect(message)) {\n _connected = false;\n _failConnect(message, {\n cause: 'failure',\n action: 'retry',\n transport: null\n });\n } else {\n _cometd._debug('Mismatched /meta/connect failure', message);\n }\n }\n\n function _failDisconnect(message) {\n _disconnect(true);\n _handleCallback(message);\n _notifyListeners('/meta/disconnect', message);\n _notifyListeners('/meta/unsuccessful', message);\n }\n\n function _disconnectResponse(message) {\n if (message.successful) {\n // Wait for the /meta/connect to arrive.\n _disconnect(false);\n _handleCallback(message);\n _notifyListeners('/meta/disconnect', message);\n } else {\n _failDisconnect(message);\n }\n }\n\n function _disconnectFailure(message) {\n _failDisconnect(message);\n }\n\n function _failSubscribe(message) {\n var subscriptions = _listeners[message.subscription];\n if (subscriptions) {\n for (var id in subscriptions) {\n if (subscriptions.hasOwnProperty(id)) {\n var subscription = subscriptions[id];\n if (subscription && !subscription.listener) {\n delete subscriptions[id];\n _cometd._debug('Removed failed subscription', subscription);\n }\n }\n }\n }\n _handleCallback(message);\n _notifyListeners('/meta/subscribe', message);\n _notifyListeners('/meta/unsuccessful', message);\n }\n\n function _subscribeResponse(message) {\n if (message.successful) {\n _handleCallback(message);\n _notifyListeners('/meta/subscribe', message);\n } else {\n _failSubscribe(message);\n }\n }\n\n function _subscribeFailure(message) {\n _failSubscribe(message);\n }\n\n function _failUnsubscribe(message) {\n _handleCallback(message);\n _notifyListeners('/meta/unsubscribe', message);\n _notifyListeners('/meta/unsuccessful', message);\n }\n\n function _unsubscribeResponse(message) {\n if (message.successful) {\n _handleCallback(message);\n _notifyListeners('/meta/unsubscribe', message);\n } else {\n _failUnsubscribe(message);\n }\n }\n\n function _unsubscribeFailure(message) {\n _failUnsubscribe(message);\n }\n\n function _failMessage(message) {\n if (!_handleRemoteCall(message)) {\n _handleCallback(message);\n _notifyListeners('/meta/publish', message);\n _notifyListeners('/meta/unsuccessful', message);\n }\n }\n\n function _messageResponse(message) {\n if (message.data !== undefined) {\n if (!_handleRemoteCall(message)) {\n _notifyListeners(message.channel, message);\n if (_handshakeMessages > 0) {\n --_handshakeMessages;\n if (_handshakeMessages === 0) {\n _cometd._debug('Processed last handshake-delivered message');\n _delayedConnect(0);\n }\n }\n }\n } else {\n if (message.successful === undefined) {\n _cometd._warn('Unknown Bayeux Message', message);\n } else {\n if (message.successful) {\n _handleCallback(message);\n _notifyListeners('/meta/publish', message);\n } else {\n _failMessage(message);\n }\n }\n }\n }\n\n function _messageFailure(failure) {\n _failMessage(failure);\n }\n\n function _receive(message) {\n _unconnectTime = 0;\n\n message = _applyIncomingExtensions(message);\n if (message === undefined || message === null) {\n return;\n }\n\n _updateAdvice(message.advice);\n\n var channel = message.channel;\n switch (channel) {\n case '/meta/handshake':\n _handshakeResponse(message);\n break;\n case '/meta/connect':\n _connectResponse(message);\n break;\n case '/meta/disconnect':\n _disconnectResponse(message);\n break;\n case '/meta/subscribe':\n _subscribeResponse(message);\n break;\n case '/meta/unsubscribe':\n _unsubscribeResponse(message);\n break;\n default:\n _messageResponse(message);\n break;\n }\n }\n\n /**\n * Receives a message.\n * This method is exposed as a public so that extensions may inject\n * messages simulating that they had been received.\n */\n this.receive = _receive;\n\n _handleMessages = function(rcvdMessages) {\n _cometd._debug('Received', rcvdMessages);\n\n for (var i = 0; i < rcvdMessages.length; ++i) {\n var message = rcvdMessages[i];\n _receive(message);\n }\n };\n\n _handleFailure = function(conduit, messages, failure) {\n _cometd._debug('handleFailure', conduit, messages, failure);\n\n failure.transport = conduit;\n for (var i = 0; i < messages.length; ++i) {\n var message = messages[i];\n var failureMessage = {\n id: message.id,\n successful: false,\n channel: message.channel,\n failure: failure\n };\n failure.message = message;\n switch (message.channel) {\n case '/meta/handshake':\n _handshakeFailure(failureMessage);\n break;\n case '/meta/connect':\n _connectFailure(failureMessage);\n break;\n case '/meta/disconnect':\n _disconnectFailure(failureMessage);\n break;\n case '/meta/subscribe':\n failureMessage.subscription = message.subscription;\n _subscribeFailure(failureMessage);\n break;\n case '/meta/unsubscribe':\n failureMessage.subscription = message.subscription;\n _unsubscribeFailure(failureMessage);\n break;\n default:\n _messageFailure(failureMessage);\n break;\n }\n }\n };\n\n function _hasSubscriptions(channel) {\n var subscriptions = _listeners[channel];\n if (subscriptions) {\n for (var id in subscriptions) {\n if (subscriptions.hasOwnProperty(id)) {\n if (subscriptions[id]) {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n function _resolveScopedCallback(scope, callback) {\n var delegate = {\n scope: scope,\n method: callback\n };\n if (_isFunction(scope)) {\n delegate.scope = undefined;\n delegate.method = scope;\n } else {\n if (_isString(callback)) {\n if (!scope) {\n throw 'Invalid scope ' + scope;\n }\n delegate.method = scope[callback];\n if (!_isFunction(delegate.method)) {\n throw 'Invalid callback ' + callback + ' for scope ' + scope;\n }\n } else if (!_isFunction(callback)) {\n throw 'Invalid callback ' + callback;\n }\n }\n return delegate;\n }\n\n function _addListener(channel, scope, callback, isListener) {\n // The data structure is a map<channel, subscription[]>, where each subscription\n // holds the callback to be called and its scope.\n\n var delegate = _resolveScopedCallback(scope, callback);\n _cometd._debug('Adding', isListener ? 'listener' : 'subscription', 'on', channel, 'with scope', delegate.scope, 'and callback', delegate.method);\n\n var id = ++_listenerId;\n var subscription = {\n id: id,\n channel: channel,\n scope: delegate.scope,\n callback: delegate.method,\n listener: isListener\n };\n\n var subscriptions = _listeners[channel];\n if (!subscriptions) {\n subscriptions = {};\n _listeners[channel] = subscriptions;\n }\n\n subscriptions[id] = subscription;\n\n _cometd._debug('Added', isListener ? 'listener' : 'subscription', subscription);\n\n return subscription;\n }\n\n //\n // PUBLIC API\n //\n\n /**\n * Registers the given transport under the given transport type.\n * The optional index parameter specifies the \"priority\" at which the\n * transport is registered (where 0 is the max priority).\n * If a transport with the same type is already registered, this function\n * does nothing and returns false.\n * @param type the transport type\n * @param transport the transport object\n * @param index the index at which this transport is to be registered\n * @return true if the transport has been registered, false otherwise\n * @see #unregisterTransport(type)\n */\n this.registerTransport = function(type, transport, index) {\n var result = _transports.add(type, transport, index);\n if (result) {\n this._debug('Registered transport', type);\n\n if (_isFunction(transport.registered)) {\n transport.registered(type, this);\n }\n }\n return result;\n };\n\n /**\n * Unregisters the transport with the given transport type.\n * @param type the transport type to unregister\n * @return the transport that has been unregistered,\n * or null if no transport was previously registered under the given transport type\n */\n this.unregisterTransport = function(type) {\n var transport = _transports.remove(type);\n if (transport !== null) {\n this._debug('Unregistered transport', type);\n\n if (_isFunction(transport.unregistered)) {\n transport.unregistered();\n }\n }\n return transport;\n };\n\n this.unregisterTransports = function() {\n _transports.clear();\n };\n\n /**\n * @return an array of all registered transport types\n */\n this.getTransportTypes = function() {\n return _transports.getTransportTypes();\n };\n\n this.findTransport = function(name) {\n return _transports.find(name);\n };\n\n /**\n * @returns the TransportRegistry object\n */\n this.getTransportRegistry = function() {\n return _transports;\n };\n\n /**\n * Configures the initial Bayeux communication with the Bayeux server.\n * Configuration is passed via an object that must contain a mandatory field <code>url</code>\n * of type string containing the URL of the Bayeux server.\n * @param configuration the configuration object\n */\n this.configure = function(configuration) {\n _configure.call(this, configuration);\n };\n\n /**\n * Configures and establishes the Bayeux communication with the Bayeux server\n * via a handshake and a subsequent connect.\n * @param configuration the configuration object\n * @param handshakeProps an object to be merged with the handshake message\n * @see #configure(configuration)\n * @see #handshake(handshakeProps)\n */\n this.init = function(configuration, handshakeProps) {\n this.configure(configuration);\n this.handshake(handshakeProps);\n };\n\n /**\n * Establishes the Bayeux communication with the Bayeux server\n * via a handshake and a subsequent connect.\n * @param handshakeProps an object to be merged with the handshake message\n * @param handshakeCallback a function to be invoked when the handshake is acknowledged\n */\n this.handshake = function(handshakeProps, handshakeCallback) {\n if (_status !== 'disconnected') {\n throw 'Illegal state: handshaken';\n }\n _handshake(handshakeProps, handshakeCallback);\n };\n\n /**\n * Disconnects from the Bayeux server.\n * @param disconnectProps an object to be merged with the disconnect message\n * @param disconnectCallback a function to be invoked when the disconnect is acknowledged\n */\n this.disconnect = function(disconnectProps, disconnectCallback) {\n if (_isDisconnected()) {\n return;\n }\n\n if (_isFunction(disconnectProps)) {\n disconnectCallback = disconnectProps;\n disconnectProps = undefined;\n }\n\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: '/meta/disconnect'\n };\n // Do not allow the user to override important fields.\n var message = this._mixin(false, {}, disconnectProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, disconnectCallback);\n\n _setStatus('disconnecting');\n _send([message], false, 'disconnect');\n };\n\n /**\n * Marks the start of a batch of application messages to be sent to the server\n * in a single request, obtaining a single response containing (possibly) many\n * application reply messages.\n * Messages are held in a queue and not sent until {@link #endBatch()} is called.\n * If startBatch() is called multiple times, then an equal number of endBatch()\n * calls must be made to close and send the batch of messages.\n * @see #endBatch()\n */\n this.startBatch = function() {\n _startBatch();\n };\n\n /**\n * Marks the end of a batch of application messages to be sent to the server\n * in a single request.\n * @see #startBatch()\n */\n this.endBatch = function() {\n _endBatch();\n };\n\n /**\n * Executes the given callback in the given scope, surrounded by a {@link #startBatch()}\n * and {@link #endBatch()} calls.\n * @param scope the scope of the callback, may be omitted\n * @param callback the callback to be executed within {@link #startBatch()} and {@link #endBatch()} calls\n */\n this.batch = function(scope, callback) {\n var delegate = _resolveScopedCallback(scope, callback);\n this.startBatch();\n try {\n delegate.method.call(delegate.scope);\n this.endBatch();\n } catch (x) {\n this._info('Exception during execution of batch', x);\n this.endBatch();\n throw x;\n }\n };\n\n /**\n * Adds a listener for bayeux messages, performing the given callback in the given scope\n * when a message for the given channel arrives.\n * @param channel the channel the listener is interested to\n * @param scope the scope of the callback, may be omitted\n * @param callback the callback to call when a message is sent to the channel\n * @returns the subscription handle to be passed to {@link #removeListener(object)}\n * @see #removeListener(subscription)\n */\n this.addListener = function(channel, scope, callback) {\n if (arguments.length < 2) {\n throw 'Illegal arguments number: required 2, got ' + arguments.length;\n }\n if (!_isString(channel)) {\n throw 'Illegal argument type: channel must be a string';\n }\n\n return _addListener(channel, scope, callback, true);\n };\n\n /**\n * Removes the subscription obtained with a call to {@link #addListener(string, object, function)}.\n * @param subscription the subscription to unsubscribe.\n * @see #addListener(channel, scope, callback)\n */\n this.removeListener = function(subscription) {\n // Beware of subscription.id == 0, which is falsy => cannot use !subscription.id\n if (!subscription || !subscription.channel || !(\"id\" in subscription)) {\n throw 'Invalid argument: expected subscription, not ' + subscription;\n }\n\n _removeListener(subscription);\n };\n\n /**\n * Removes all listeners registered with {@link #addListener(channel, scope, callback)} or\n * {@link #subscribe(channel, scope, callback)}.\n */\n this.clearListeners = function() {\n _listeners = {};\n };\n\n /**\n * Subscribes to the given channel, performing the given callback in the given scope\n * when a message for the channel arrives.\n * @param channel the channel to subscribe to\n * @param scope the scope of the callback, may be omitted\n * @param callback the callback to call when a message is sent to the channel\n * @param subscribeProps an object to be merged with the subscribe message\n * @param subscribeCallback a function to be invoked when the subscription is acknowledged\n * @return the subscription handle to be passed to {@link #unsubscribe(object)}\n */\n this.subscribe = function(channel, scope, callback, subscribeProps, subscribeCallback) {\n if (arguments.length < 2) {\n throw 'Illegal arguments number: required 2, got ' + arguments.length;\n }\n if (!_isString(channel)) {\n throw 'Illegal argument type: channel must be a string';\n }\n if (_isDisconnected()) {\n throw 'Illegal state: disconnected';\n }\n\n // Normalize arguments\n if (_isFunction(scope)) {\n subscribeCallback = subscribeProps;\n subscribeProps = callback;\n callback = scope;\n scope = undefined;\n }\n if (_isFunction(subscribeProps)) {\n subscribeCallback = subscribeProps;\n subscribeProps = undefined;\n }\n\n // Only send the message to the server if this client has not yet subscribed to the channel\n var send = !_hasSubscriptions(channel);\n\n var subscription = _addListener(channel, scope, callback, false);\n\n if (send) {\n // Send the subscription message after the subscription registration to avoid\n // races where the server would send a message to the subscribers, but here\n // on the client the subscription has not been added yet to the data structures\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: '/meta/subscribe',\n subscription: channel\n };\n // Do not allow the user to override important fields.\n var message = this._mixin(false, {}, subscribeProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, subscribeCallback);\n\n _queueSend(message);\n }\n\n return subscription;\n };\n\n /**\n * Unsubscribes the subscription obtained with a call to {@link #subscribe(string, object, function)}.\n * @param subscription the subscription to unsubscribe.\n * @param unsubscribeProps an object to be merged with the unsubscribe message\n * @param unsubscribeCallback a function to be invoked when the unsubscription is acknowledged\n */\n this.unsubscribe = function(subscription, unsubscribeProps, unsubscribeCallback) {\n if (arguments.length < 1) {\n throw 'Illegal arguments number: required 1, got ' + arguments.length;\n }\n if (_isDisconnected()) {\n throw 'Illegal state: disconnected';\n }\n\n if (_isFunction(unsubscribeProps)) {\n unsubscribeCallback = unsubscribeProps;\n unsubscribeProps = undefined;\n }\n\n // Remove the local listener before sending the message\n // This ensures that if the server fails, this client does not get notifications\n this.removeListener(subscription);\n\n var channel = subscription.channel;\n // Only send the message to the server if this client unsubscribes the last subscription\n if (!_hasSubscriptions(channel)) {\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: '/meta/unsubscribe',\n subscription: channel\n };\n // Do not allow the user to override important fields.\n var message = this._mixin(false, {}, unsubscribeProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, unsubscribeCallback);\n\n _queueSend(message);\n }\n };\n\n this.resubscribe = function(subscription, subscribeProps) {\n _removeSubscription(subscription);\n if (subscription) {\n return this.subscribe(subscription.channel, subscription.scope, subscription.callback, subscribeProps);\n }\n return undefined;\n };\n\n /**\n * Removes all subscriptions added via {@link #subscribe(channel, scope, callback, subscribeProps)},\n * but does not remove the listeners added via {@link addListener(channel, scope, callback)}.\n */\n this.clearSubscriptions = function() {\n _clearSubscriptions();\n };\n\n /**\n * Publishes a message on the given channel, containing the given content.\n * @param channel the channel to publish the message to\n * @param content the content of the message\n * @param publishProps an object to be merged with the publish message\n * @param publishCallback a function to be invoked when the publish is acknowledged by the server\n */\n this.publish = function(channel, content, publishProps, publishCallback) {\n if (arguments.length < 1) {\n throw 'Illegal arguments number: required 1, got ' + arguments.length;\n }\n if (!_isString(channel)) {\n throw 'Illegal argument type: channel must be a string';\n }\n if (/^\\/meta\\//.test(channel)) {\n throw 'Illegal argument: cannot publish to meta channels';\n }\n if (_isDisconnected()) {\n throw 'Illegal state: disconnected';\n }\n\n if (_isFunction(content)) {\n publishCallback = content;\n content = {};\n publishProps = undefined;\n } else if (_isFunction(publishProps)) {\n publishCallback = publishProps;\n publishProps = undefined;\n }\n\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: channel,\n data: content\n };\n // Do not allow the user to override important fields.\n var message = this._mixin(false, {}, publishProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, publishCallback);\n\n _queueSend(message);\n };\n\n /**\n * Publishes a message with binary data on the given channel.\n * The binary data chunk may be an ArrayBuffer, a DataView, a TypedArray\n * (such as Uint8Array) or a plain integer array.\n * The meta data object may contain additional application data such as\n * a file name, a mime type, etc.\n * @param channel the channel to publish the message to\n * @param data the binary data to publish\n * @param last whether the binary data chunk is the last\n * @param meta an object containing meta data associated to the binary chunk\n * @param callback a function to be invoked when the publish is acknowledged by the server\n */\n this.publishBinary = function(channel, data, last, meta, callback) {\n if (_isFunction(data)) {\n callback = data;\n data = new ArrayBuffer(0);\n last = true;\n meta = undefined;\n } else if (_isFunction(last)) {\n callback = last;\n last = true;\n meta = undefined;\n } else if (_isFunction(meta)) {\n callback = meta;\n meta = undefined;\n }\n var content = {\n meta: meta,\n data: data,\n last: last\n };\n var ext = {\n ext: {\n binary: {}\n }\n };\n this.publish(channel, content, ext, callback);\n };\n\n this.remoteCall = function(target, content, timeout, callProps, callback) {\n if (arguments.length < 1) {\n throw 'Illegal arguments number: required 1, got ' + arguments.length;\n }\n if (!_isString(target)) {\n throw 'Illegal argument type: target must be a string';\n }\n if (_isDisconnected()) {\n throw 'Illegal state: disconnected';\n }\n\n if (_isFunction(content)) {\n callback = content;\n content = {};\n timeout = _config.maxNetworkDelay;\n callProps = undefined;\n } else if (_isFunction(timeout)) {\n callback = timeout;\n timeout = _config.maxNetworkDelay;\n callProps = undefined;\n } else if (_isFunction(callProps)) {\n callback = callProps;\n callProps = undefined;\n }\n\n if (typeof timeout !== 'number') {\n throw 'Illegal argument type: timeout must be a number';\n }\n\n if (!target.match(/^\\//)) {\n target = '/' + target;\n }\n var channel = '/service' + target;\n\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: channel,\n data: content\n };\n var message = this._mixin(false, {}, callProps, bayeuxMessage);\n\n var context = {\n callback: callback\n };\n if (timeout > 0) {\n context.timeout = _cometd.setTimeout(function() {\n _cometd._debug('Timing out remote call', message, 'after', timeout, 'ms');\n _failMessage({\n id: message.id,\n error: '406::timeout',\n successful: false,\n failure: {\n message: message,\n reason: 'Remote Call Timeout'\n }\n });\n }, timeout);\n _cometd._debug('Scheduled remote call timeout', message, 'in', timeout, 'ms');\n }\n _remoteCalls[message.id] = context;\n\n _queueSend(message);\n };\n\n this.remoteCallBinary = function(target, data, last, meta, timeout, callback) {\n if (_isFunction(data)) {\n callback = data;\n data = new ArrayBuffer(0);\n last = true;\n meta = undefined;\n timeout = _config.maxNetworkDelay;\n } else if (_isFunction(last)) {\n callback = last;\n last = true;\n meta = undefined;\n timeout = _config.maxNetworkDelay;\n } else if (_isFunction(meta)) {\n callback = meta;\n meta = undefined;\n timeout = _config.maxNetworkDelay;\n } else if (_isFunction(timeout)) {\n callback = timeout;\n timeout = _config.maxNetworkDelay;\n }\n\n var content = {\n meta: meta,\n data: data,\n last: last\n };\n var ext = {\n ext: {\n binary: {}\n }\n };\n\n this.remoteCall(target, content, timeout, ext, callback);\n };\n\n /**\n * Returns a string representing the status of the bayeux communication with the Bayeux server.\n */\n this.getStatus = function() {\n return _status;\n };\n\n /**\n * Returns whether this instance has been disconnected.\n */\n this.isDisconnected = _isDisconnected;\n\n /**\n * Sets the backoff period used to increase the backoff time when retrying an unsuccessful or failed message.\n * Default value is 1 second, which means if there is a persistent failure the retries will happen\n * after 1 second, then after 2 seconds, then after 3 seconds, etc. So for example with 15 seconds of\n * elapsed time, there will be 5 retries (at 1, 3, 6, 10 and 15 seconds elapsed).\n * @param period the backoff period to set\n * @see #getBackoffIncrement()\n */\n this.setBackoffIncrement = function(period) {\n _config.backoffIncrement = period;\n };\n\n /**\n * Returns the backoff period used to increase the backoff time when retrying an unsuccessful or failed message.\n * @see #setBackoffIncrement(period)\n */\n this.getBackoffIncrement = function() {\n return _config.backoffIncrement;\n };\n\n /**\n * Returns the backoff period to wait before retrying an unsuccessful or failed message.\n */\n this.getBackoffPeriod = function() {\n return _backoff;\n };\n\n /**\n * Increases the backoff period up to the maximum value configured.\n * @returns the backoff period after increment\n * @see getBackoffIncrement\n */\n this.increaseBackoffPeriod = function() {\n return _increaseBackoff();\n };\n\n /**\n * Resets the backoff period to zero.\n */\n this.resetBackoffPeriod = function() {\n _resetBackoff();\n };\n\n /**\n * Sets the log level for console logging.\n * Valid values are the strings 'error', 'warn', 'info' and 'debug', from\n * less verbose to more verbose.\n * @param level the log level string\n */\n this.setLogLevel = function(level) {\n _config.logLevel = level;\n };\n\n /**\n * Registers an extension whose callbacks are called for every incoming message\n * (that comes from the server to this client implementation) and for every\n * outgoing message (that originates from this client implementation for the\n * server).\n * The format of the extension object is the following:\n * <pre>\n * {\n * incoming: function(message) { ... },\n * outgoing: function(message) { ... }\n * }\n * </pre>\n * Both properties are optional, but if they are present they will be called\n * respectively for each incoming message and for each outgoing message.\n * @param name the name of the extension\n * @param extension the extension to register\n * @return true if the extension was registered, false otherwise\n * @see #unregisterExtension(name)\n */\n this.registerExtension = function(name, extension) {\n if (arguments.length < 2) {\n throw 'Illegal arguments number: required 2, got ' + arguments.length;\n }\n if (!_isString(name)) {\n throw 'Illegal argument type: extension name must be a string';\n }\n\n var existing = false;\n for (var i = 0; i < _extensions.length; ++i) {\n var existingExtension = _extensions[i];\n if (existingExtension.name === name) {\n existing = true;\n break;\n }\n }\n if (!existing) {\n _extensions.push({\n name: name,\n extension: extension\n });\n this._debug('Registered extension', name);\n\n // Callback for extensions\n if (_isFunction(extension.registered)) {\n extension.registered(name, this);\n }\n\n return true;\n } else {\n this._info('Could not register extension with name', name, 'since another extension with the same name already exists');\n return false;\n }\n };\n\n /**\n * Unregister an extension previously registered with\n * {@link #registerExtension(name, extension)}.\n * @param name the name of the extension to unregister.\n * @return true if the extension was unregistered, false otherwise\n */\n this.unregisterExtension = function(name) {\n if (!_isString(name)) {\n throw 'Illegal argument type: extension name must be a string';\n }\n\n var unregistered = false;\n for (var i = 0; i < _extensions.length; ++i) {\n var extension = _extensions[i];\n if (extension.name === name) {\n _extensions.splice(i, 1);\n unregistered = true;\n this._debug('Unregistered extension', name);\n\n // Callback for extensions\n var ext = extension.extension;\n if (_isFunction(ext.unregistered)) {\n ext.unregistered();\n }\n\n break;\n }\n }\n return unregistered;\n };\n\n /**\n * Find the extension registered with the given name.\n * @param name the name of the extension to find\n * @return the extension found or null if no extension with the given name has been registered\n */\n this.getExtension = function(name) {\n for (var i = 0; i < _extensions.length; ++i) {\n var extension = _extensions[i];\n if (extension.name === name) {\n return extension.extension;\n }\n }\n return null;\n };\n\n /**\n * Returns the name assigned to this CometD object, or the string 'default'\n * if no name has been explicitly passed as parameter to the constructor.\n */\n this.getName = function() {\n return _name;\n };\n\n /**\n * Returns the clientId assigned by the Bayeux server during handshake.\n */\n this.getClientId = function() {\n return _clientId;\n };\n\n /**\n * Returns the URL of the Bayeux server.\n */\n this.getURL = function() {\n if (_transport) {\n var url = _transport.getURL();\n if (url) {\n return url;\n }\n url = _config.urls[_transport.getType()];\n if (url) {\n return url;\n }\n }\n return _config.url;\n };\n\n this.getTransport = function() {\n return _transport;\n };\n\n this.getConfiguration = function() {\n return this._mixin(true, {}, _config);\n };\n\n this.getAdvice = function() {\n return this._mixin(true, {}, _advice);\n };\n\n this.setTimeout = function(funktion, delay) {\n return _scheduler.setTimeout(function() {\n try {\n _cometd._debug('Invoking timed function', funktion);\n funktion();\n } catch (x) {\n _cometd._debug('Exception invoking timed function', funktion, x);\n }\n }, delay);\n };\n\n this.clearTimeout = function(id) {\n _scheduler.clearTimeout(id);\n };\n\n // Initialize transports.\n if (window.WebSocket) {\n this.registerTransport('websocket', new WebSocketTransport());\n }\n this.registerTransport('long-polling', new LongPollingTransport());\n this.registerTransport('callback-polling', new CallbackPollingTransport());\n };\n\n var _z85EncodeTable = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',\n 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',\n 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D',\n 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',\n 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',\n 'Y', 'Z', '.', '-', ':', '+', '=', '^', '!', '/',\n '*', '?', '&', '<', '>', '(', ')', '[', ']', '{',\n '}', '@', '%', '$', '#'\n ];\n var _z85DecodeTable = [\n 0x00, 0x44, 0x00, 0x54, 0x53, 0x52, 0x48, 0x00,\n 0x4B, 0x4C, 0x46, 0x41, 0x00, 0x3F, 0x3E, 0x45,\n 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\n 0x08, 0x09, 0x40, 0x00, 0x49, 0x42, 0x4A, 0x47,\n 0x51, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A,\n 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32,\n 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,\n 0x3B, 0x3C, 0x3D, 0x4D, 0x00, 0x4E, 0x43, 0x00,\n 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,\n 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,\n 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,\n 0x21, 0x22, 0x23, 0x4F, 0x00, 0x50, 0x00, 0x00\n ];\n var Z85 = {\n encode: function(bytes) {\n var buffer = null;\n if (bytes instanceof ArrayBuffer) {\n buffer = bytes;\n } else if (bytes.buffer instanceof ArrayBuffer) {\n buffer = bytes.buffer;\n } else if (Array.isArray(bytes)) {\n buffer = new Uint8Array(bytes).buffer;\n }\n if (buffer == null) {\n throw 'Cannot Z85 encode ' + bytes;\n }\n\n var length = buffer.byteLength;\n var remainder = length % 4;\n var padding = 4 - (remainder === 0 ? 4 : remainder);\n var view = new DataView(buffer);\n var result = '';\n var value = 0;\n for (var i = 0; i < length + padding; ++i) {\n var isPadding = i >= length;\n value = value * 256 + (isPadding ? 0 : view.getUint8(i));\n if ((i + 1) % 4 === 0) {\n var divisor = 85 * 85 * 85 * 85;\n for (var j = 5; j > 0; --j) {\n if (!isPadding || j > padding) {\n var code = Math.floor(value / divisor) % 85;\n result += _z85EncodeTable[code];\n }\n divisor /= 85;\n }\n value = 0;\n }\n }\n\n return result;\n },\n decode: function(string) {\n var remainder = string.length % 5;\n var padding = 5 - (remainder === 0 ? 5 : remainder);\n for (var p = 0; p < padding; ++p) {\n string += _z85EncodeTable[_z85EncodeTable.length - 1];\n }\n var length = string.length;\n\n var buffer = new ArrayBuffer((length * 4 / 5) - padding);\n var view = new DataView(buffer);\n var value = 0;\n var charIdx = 0;\n var byteIdx = 0;\n for (var i = 0; i < length; ++i) {\n var code = string.charCodeAt(charIdx++) - 32;\n value = value * 85 + _z85DecodeTable[code];\n if (charIdx % 5 === 0) {\n var divisor = 256 * 256 * 256;\n while (divisor >= 1) {\n if (byteIdx < view.byteLength) {\n view.setUint8(byteIdx++, Math.floor(value / divisor) % 256);\n }\n divisor /= 256;\n }\n value = 0;\n }\n }\n\n return buffer;\n }\n };\n\n return {\n CometD: CometD,\n Transport: Transport,\n RequestTransport: RequestTransport,\n LongPollingTransport: LongPollingTransport,\n CallbackPollingTransport: CallbackPollingTransport,\n WebSocketTransport: WebSocketTransport,\n Utils: Utils,\n Z85: Z85\n };\n}));\n"],"names":["this"],"mappings":"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"}
1
+ {"version":3,"file":"cometd-009d1cc7.js","sources":["../../node_modules/cometd/cometd.js"],"sourcesContent":["/*\n * Copyright (c) 2008-2020 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* CometD Version 4.0.9 */\n\n(function(root, factory) {\n if (typeof exports === 'object') {\n // CommonJS.\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD.\n define([], factory);\n } else {\n // Globals.\n root.org = root.org || {};\n root.org.cometd = factory();\n }\n}(this, function() {\n /**\n * Browsers may throttle the Window scheduler,\n * so we may replace it with a Worker scheduler.\n */\n var Scheduler = function() {\n var _ids = 0;\n var _tasks = {};\n this.register = function(funktion) {\n var id = ++_ids;\n _tasks[id] = funktion;\n return id;\n };\n this.unregister = function(id) {\n var funktion = _tasks[id];\n delete _tasks[id];\n return funktion;\n };\n this.setTimeout = function(funktion, delay) {\n return window.setTimeout(funktion, delay);\n };\n this.clearTimeout = function(id) {\n window.clearTimeout(id);\n };\n };\n\n /**\n * The scheduler code that will run in the Worker.\n * Workers have a built-in `self` variable similar to `window`.\n */\n function WorkerScheduler() {\n var _tasks = {};\n self.onmessage = function(e) {\n var cmd = e.data;\n var id = _tasks[cmd.id];\n switch (cmd.type) {\n case 'setTimeout':\n _tasks[cmd.id] = self.setTimeout(function() {\n delete _tasks[cmd.id];\n self.postMessage({\n id: cmd.id\n });\n }, cmd.delay);\n break;\n case 'clearTimeout':\n delete _tasks[cmd.id];\n if (id) {\n self.clearTimeout(id);\n }\n break;\n default:\n throw 'Unknown command ' + cmd.type;\n }\n };\n }\n\n\n /**\n * Utility functions.\n */\n var Utils = {\n isString: function(value) {\n if (value === undefined || value === null) {\n return false;\n }\n return typeof value === 'string' || value instanceof String;\n },\n isArray: function(value) {\n if (value === undefined || value === null) {\n return false;\n }\n return value instanceof Array;\n },\n /**\n * Returns whether the given element is contained into the given array.\n * @param element the element to check presence for\n * @param array the array to check for the element presence\n * @return the index of the element, if present, or a negative index if the element is not present\n */\n inArray: function(element, array) {\n for (var i = 0; i < array.length; ++i) {\n if (element === array[i]) {\n return i;\n }\n }\n return -1;\n }\n };\n\n\n /**\n * A registry for transports used by the CometD object.\n */\n var TransportRegistry = function() {\n var _types = [];\n var _transports = {};\n\n this.getTransportTypes = function() {\n return _types.slice(0);\n };\n\n this.findTransportTypes = function(version, crossDomain, url) {\n var result = [];\n for (var i = 0; i < _types.length; ++i) {\n var type = _types[i];\n if (_transports[type].accept(version, crossDomain, url) === true) {\n result.push(type);\n }\n }\n return result;\n };\n\n this.negotiateTransport = function(types, version, crossDomain, url) {\n for (var i = 0; i < _types.length; ++i) {\n var type = _types[i];\n for (var j = 0; j < types.length; ++j) {\n if (type === types[j]) {\n var transport = _transports[type];\n if (transport.accept(version, crossDomain, url) === true) {\n return transport;\n }\n }\n }\n }\n return null;\n };\n\n this.add = function(type, transport, index) {\n var existing = false;\n for (var i = 0; i < _types.length; ++i) {\n if (_types[i] === type) {\n existing = true;\n break;\n }\n }\n\n if (!existing) {\n if (typeof index !== 'number') {\n _types.push(type);\n } else {\n _types.splice(index, 0, type);\n }\n _transports[type] = transport;\n }\n\n return !existing;\n };\n\n this.find = function(type) {\n for (var i = 0; i < _types.length; ++i) {\n if (_types[i] === type) {\n return _transports[type];\n }\n }\n return null;\n };\n\n this.remove = function(type) {\n for (var i = 0; i < _types.length; ++i) {\n if (_types[i] === type) {\n _types.splice(i, 1);\n var transport = _transports[type];\n delete _transports[type];\n return transport;\n }\n }\n return null;\n };\n\n this.clear = function() {\n _types = [];\n _transports = {};\n };\n\n this.reset = function(init) {\n for (var i = 0; i < _types.length; ++i) {\n _transports[_types[i]].reset(init);\n }\n };\n };\n\n\n /**\n * Base object with the common functionality for transports.\n */\n var Transport = function() {\n var _type;\n var _cometd;\n var _url;\n\n /**\n * Function invoked just after a transport has been successfully registered.\n * @param type the type of transport (for example 'long-polling')\n * @param cometd the cometd object this transport has been registered to\n * @see #unregistered()\n */\n this.registered = function(type, cometd) {\n _type = type;\n _cometd = cometd;\n };\n\n /**\n * Function invoked just after a transport has been successfully unregistered.\n * @see #registered(type, cometd)\n */\n this.unregistered = function() {\n _type = null;\n _cometd = null;\n };\n\n this._debug = function() {\n _cometd._debug.apply(_cometd, arguments);\n };\n\n this._mixin = function() {\n return _cometd._mixin.apply(_cometd, arguments);\n };\n\n this.getConfiguration = function() {\n return _cometd.getConfiguration();\n };\n\n this.getAdvice = function() {\n return _cometd.getAdvice();\n };\n\n this.setTimeout = function(funktion, delay) {\n return _cometd.setTimeout(funktion, delay);\n };\n\n this.clearTimeout = function(id) {\n _cometd.clearTimeout(id);\n };\n\n /**\n * Converts the given response into an array of bayeux messages\n * @param response the response to convert\n * @return an array of bayeux messages obtained by converting the response\n */\n this.convertToMessages = function(response) {\n if (Utils.isString(response)) {\n try {\n return JSON.parse(response);\n } catch (x) {\n this._debug('Could not convert to JSON the following string', '\"' + response + '\"');\n throw x;\n }\n }\n if (Utils.isArray(response)) {\n return response;\n }\n if (response === undefined || response === null) {\n return [];\n }\n if (response instanceof Object) {\n return [response];\n }\n throw 'Conversion Error ' + response + ', typeof ' + (typeof response);\n };\n\n /**\n * Returns whether this transport can work for the given version and cross domain communication case.\n * @param version a string indicating the transport version\n * @param crossDomain a boolean indicating whether the communication is cross domain\n * @param url the URL to connect to\n * @return true if this transport can work for the given version and cross domain communication case,\n * false otherwise\n */\n this.accept = function(version, crossDomain, url) {\n throw 'Abstract';\n };\n\n /**\n * Returns the type of this transport.\n * @see #registered(type, cometd)\n */\n this.getType = function() {\n return _type;\n };\n\n this.getURL = function() {\n return _url;\n };\n\n this.setURL = function(url) {\n _url = url;\n };\n\n this.send = function(envelope, metaConnect) {\n throw 'Abstract';\n };\n\n this.reset = function(init) {\n this._debug('Transport', _type, 'reset', init ? 'initial' : 'retry');\n };\n\n this.abort = function() {\n this._debug('Transport', _type, 'aborted');\n };\n\n this.toString = function() {\n return this.getType();\n };\n };\n\n Transport.derive = function(baseObject) {\n function F() {\n }\n\n F.prototype = baseObject;\n return new F();\n };\n\n\n /**\n * Base object with the common functionality for transports based on requests.\n * The key responsibility is to allow at most 2 outstanding requests to the server,\n * to avoid that requests are sent behind a long poll.\n * To achieve this, we have one reserved request for the long poll, and all other\n * requests are serialized one after the other.\n */\n var RequestTransport = function() {\n var _super = new Transport();\n var _self = Transport.derive(_super);\n var _requestIds = 0;\n var _metaConnectRequest = null;\n var _requests = [];\n var _envelopes = [];\n\n function _coalesceEnvelopes(envelope) {\n while (_envelopes.length > 0) {\n var envelopeAndRequest = _envelopes[0];\n var newEnvelope = envelopeAndRequest[0];\n var newRequest = envelopeAndRequest[1];\n if (newEnvelope.url === envelope.url &&\n newEnvelope.sync === envelope.sync) {\n _envelopes.shift();\n envelope.messages = envelope.messages.concat(newEnvelope.messages);\n this._debug('Coalesced', newEnvelope.messages.length, 'messages from request', newRequest.id);\n continue;\n }\n break;\n }\n }\n\n function _transportSend(envelope, request) {\n this.transportSend(envelope, request);\n request.expired = false;\n\n if (!envelope.sync) {\n var maxDelay = this.getConfiguration().maxNetworkDelay;\n var delay = maxDelay;\n if (request.metaConnect === true) {\n delay += this.getAdvice().timeout;\n }\n\n this._debug('Transport', this.getType(), 'waiting at most', delay, 'ms for the response, maxNetworkDelay', maxDelay);\n\n var self = this;\n request.timeout = this.setTimeout(function() {\n request.expired = true;\n var errorMessage = 'Request ' + request.id + ' of transport ' + self.getType() + ' exceeded ' + delay + ' ms max network delay';\n var failure = {\n reason: errorMessage\n };\n var xhr = request.xhr;\n failure.httpCode = self.xhrStatus(xhr);\n self.abortXHR(xhr);\n self._debug(errorMessage);\n self.complete(request, false, request.metaConnect);\n envelope.onFailure(xhr, envelope.messages, failure);\n }, delay);\n }\n }\n\n function _queueSend(envelope) {\n var requestId = ++_requestIds;\n var request = {\n id: requestId,\n metaConnect: false,\n envelope: envelope\n };\n\n // Consider the /meta/connect requests which should always be present.\n if (_requests.length < this.getConfiguration().maxConnections - 1) {\n _requests.push(request);\n _transportSend.call(this, envelope, request);\n } else {\n this._debug('Transport', this.getType(), 'queueing request', requestId, 'envelope', envelope);\n _envelopes.push([envelope, request]);\n }\n }\n\n function _metaConnectComplete(request) {\n var requestId = request.id;\n this._debug('Transport', this.getType(), '/meta/connect complete, request', requestId);\n if (_metaConnectRequest !== null && _metaConnectRequest.id !== requestId) {\n throw '/meta/connect request mismatch, completing request ' + requestId;\n }\n _metaConnectRequest = null;\n }\n\n function _complete(request, success) {\n var index = Utils.inArray(request, _requests);\n // The index can be negative if the request has been aborted\n if (index >= 0) {\n _requests.splice(index, 1);\n }\n\n if (_envelopes.length > 0) {\n var envelopeAndRequest = _envelopes.shift();\n var nextEnvelope = envelopeAndRequest[0];\n var nextRequest = envelopeAndRequest[1];\n this._debug('Transport dequeued request', nextRequest.id);\n if (success) {\n if (this.getConfiguration().autoBatch) {\n _coalesceEnvelopes.call(this, nextEnvelope);\n }\n _queueSend.call(this, nextEnvelope);\n this._debug('Transport completed request', request.id, nextEnvelope);\n } else {\n // Keep the semantic of calling response callbacks asynchronously after the request\n var self = this;\n this.setTimeout(function() {\n self.complete(nextRequest, false, nextRequest.metaConnect);\n var failure = {\n reason: 'Previous request failed'\n };\n var xhr = nextRequest.xhr;\n failure.httpCode = self.xhrStatus(xhr);\n nextEnvelope.onFailure(xhr, nextEnvelope.messages, failure);\n }, 0);\n }\n }\n }\n\n _self.complete = function(request, success, metaConnect) {\n if (metaConnect) {\n _metaConnectComplete.call(this, request);\n } else {\n _complete.call(this, request, success);\n }\n };\n\n /**\n * Performs the actual send depending on the transport type details.\n * @param envelope the envelope to send\n * @param request the request information\n */\n _self.transportSend = function(envelope, request) {\n throw 'Abstract';\n };\n\n _self.transportSuccess = function(envelope, request, responses) {\n if (!request.expired) {\n this.clearTimeout(request.timeout);\n this.complete(request, true, request.metaConnect);\n if (responses && responses.length > 0) {\n envelope.onSuccess(responses);\n } else {\n envelope.onFailure(request.xhr, envelope.messages, {\n httpCode: 204\n });\n }\n }\n };\n\n _self.transportFailure = function(envelope, request, failure) {\n if (!request.expired) {\n this.clearTimeout(request.timeout);\n this.complete(request, false, request.metaConnect);\n envelope.onFailure(request.xhr, envelope.messages, failure);\n }\n };\n\n function _metaConnectSend(envelope) {\n if (_metaConnectRequest !== null) {\n throw 'Concurrent /meta/connect requests not allowed, request id=' + _metaConnectRequest.id + ' not yet completed';\n }\n\n var requestId = ++_requestIds;\n this._debug('Transport', this.getType(), '/meta/connect send, request', requestId, 'envelope', envelope);\n var request = {\n id: requestId,\n metaConnect: true,\n envelope: envelope\n };\n _transportSend.call(this, envelope, request);\n _metaConnectRequest = request;\n }\n\n _self.send = function(envelope, metaConnect) {\n if (metaConnect) {\n _metaConnectSend.call(this, envelope);\n } else {\n _queueSend.call(this, envelope);\n }\n };\n\n _self.abort = function() {\n _super.abort();\n for (var i = 0; i < _requests.length; ++i) {\n var request = _requests[i];\n if (request) {\n this._debug('Aborting request', request);\n if (!this.abortXHR(request.xhr)) {\n this.transportFailure(request.envelope, request, {reason: 'abort'});\n }\n }\n }\n var metaConnectRequest = _metaConnectRequest;\n if (metaConnectRequest) {\n this._debug('Aborting /meta/connect request', metaConnectRequest);\n if (!this.abortXHR(metaConnectRequest.xhr)) {\n this.transportFailure(metaConnectRequest.envelope, metaConnectRequest, {reason: 'abort'});\n }\n }\n this.reset(true);\n };\n\n _self.reset = function(init) {\n _super.reset(init);\n _metaConnectRequest = null;\n _requests = [];\n _envelopes = [];\n };\n\n _self.abortXHR = function(xhr) {\n if (xhr) {\n try {\n var state = xhr.readyState;\n xhr.abort();\n return state !== window.XMLHttpRequest.UNSENT;\n } catch (x) {\n this._debug(x);\n }\n }\n return false;\n };\n\n _self.xhrStatus = function(xhr) {\n if (xhr) {\n try {\n return xhr.status;\n } catch (x) {\n this._debug(x);\n }\n }\n return -1;\n };\n\n return _self;\n };\n\n\n var LongPollingTransport = function() {\n var _super = new RequestTransport();\n var _self = Transport.derive(_super);\n // By default, support cross domain\n var _supportsCrossDomain = true;\n\n _self.accept = function(version, crossDomain, url) {\n return _supportsCrossDomain || !crossDomain;\n };\n\n _self.newXMLHttpRequest = function() {\n return new window.XMLHttpRequest();\n };\n\n function _copyContext(xhr) {\n try {\n // Copy external context, to be used in other environments.\n xhr.context = _self.context;\n } catch (e) {\n // May happen if XHR is wrapped by Object.seal(),\n // Object.freeze(), or Object.preventExtensions().\n this._debug('Could not copy transport context into XHR', e);\n }\n }\n\n _self.xhrSend = function(packet) {\n var xhr = _self.newXMLHttpRequest();\n _copyContext(xhr);\n xhr.withCredentials = true;\n xhr.open('POST', packet.url, packet.sync !== true);\n var headers = packet.headers;\n if (headers) {\n for (var headerName in headers) {\n if (headers.hasOwnProperty(headerName)) {\n xhr.setRequestHeader(headerName, headers[headerName]);\n }\n }\n }\n xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\n xhr.onload = function() {\n if (xhr.status === 200) {\n packet.onSuccess(xhr.responseText);\n } else {\n packet.onError(xhr.statusText);\n }\n };\n xhr.onabort = xhr.onerror = function() {\n packet.onError(xhr.statusText);\n };\n xhr.send(packet.body);\n return xhr;\n };\n\n _self.transportSend = function(envelope, request) {\n this._debug('Transport', this.getType(), 'sending request', request.id, 'envelope', envelope);\n\n var self = this;\n try {\n var sameStack = true;\n request.xhr = this.xhrSend({\n transport: this,\n url: envelope.url,\n sync: envelope.sync,\n headers: this.getConfiguration().requestHeaders,\n body: JSON.stringify(envelope.messages),\n onSuccess: function(response) {\n self._debug('Transport', self.getType(), 'received response', response);\n var success = false;\n try {\n var received = self.convertToMessages(response);\n if (received.length === 0) {\n _supportsCrossDomain = false;\n self.transportFailure(envelope, request, {\n httpCode: 204\n });\n } else {\n success = true;\n self.transportSuccess(envelope, request, received);\n }\n } catch (x) {\n self._debug(x);\n if (!success) {\n _supportsCrossDomain = false;\n var failure = {\n exception: x\n };\n failure.httpCode = self.xhrStatus(request.xhr);\n self.transportFailure(envelope, request, failure);\n }\n }\n },\n onError: function(reason, exception) {\n self._debug('Transport', self.getType(), 'received error', reason, exception);\n _supportsCrossDomain = false;\n var failure = {\n reason: reason,\n exception: exception\n };\n failure.httpCode = self.xhrStatus(request.xhr);\n if (sameStack) {\n // Keep the semantic of calling response callbacks asynchronously after the request\n self.setTimeout(function() {\n self.transportFailure(envelope, request, failure);\n }, 0);\n } else {\n self.transportFailure(envelope, request, failure);\n }\n }\n });\n sameStack = false;\n } catch (x) {\n _supportsCrossDomain = false;\n // Keep the semantic of calling response callbacks asynchronously after the request\n this.setTimeout(function() {\n self.transportFailure(envelope, request, {\n exception: x\n });\n }, 0);\n }\n };\n\n _self.reset = function(init) {\n _super.reset(init);\n _supportsCrossDomain = true;\n };\n\n return _self;\n };\n\n\n var CallbackPollingTransport = function() {\n var _super = new RequestTransport();\n var _self = Transport.derive(_super);\n var jsonp = 0;\n\n _self.accept = function(version, crossDomain, url) {\n return true;\n };\n\n _self.jsonpSend = function(packet) {\n var head = document.getElementsByTagName('head')[0];\n var script = document.createElement('script');\n\n var callbackName = '_cometd_jsonp_' + jsonp++;\n window[callbackName] = function(responseText) {\n head.removeChild(script);\n delete window[callbackName];\n packet.onSuccess(responseText);\n };\n\n var url = packet.url;\n url += url.indexOf('?') < 0 ? '?' : '&';\n url += 'jsonp=' + callbackName;\n url += '&message=' + encodeURIComponent(packet.body);\n script.src = url;\n script.async = packet.sync !== true;\n script.type = 'application/javascript';\n script.onerror = function(e) {\n packet.onError('jsonp ' + e.type);\n };\n head.appendChild(script);\n };\n\n function _failTransportFn(envelope, request, x) {\n var self = this;\n return function() {\n self.transportFailure(envelope, request, 'error', x);\n };\n }\n\n _self.transportSend = function(envelope, request) {\n var self = this;\n\n // Microsoft Internet Explorer has a 2083 URL max length\n // We must ensure that we stay within that length\n var start = 0;\n var length = envelope.messages.length;\n var lengths = [];\n while (length > 0) {\n // Encode the messages because all brackets, quotes, commas, colons, etc\n // present in the JSON will be URL encoded, taking many more characters\n var json = JSON.stringify(envelope.messages.slice(start, start + length));\n var urlLength = envelope.url.length + encodeURI(json).length;\n\n var maxLength = this.getConfiguration().maxURILength;\n if (urlLength > maxLength) {\n if (length === 1) {\n var x = 'Bayeux message too big (' + urlLength + ' bytes, max is ' + maxLength + ') ' +\n 'for transport ' + this.getType();\n // Keep the semantic of calling response callbacks asynchronously after the request\n this.setTimeout(_failTransportFn.call(this, envelope, request, x), 0);\n return;\n }\n\n --length;\n continue;\n }\n\n lengths.push(length);\n start += length;\n length = envelope.messages.length - start;\n }\n\n // Here we are sure that the messages can be sent within the URL limit\n\n var envelopeToSend = envelope;\n if (lengths.length > 1) {\n var begin = 0;\n var end = lengths[0];\n this._debug('Transport', this.getType(), 'split', envelope.messages.length, 'messages into', lengths.join(' + '));\n envelopeToSend = this._mixin(false, {}, envelope);\n envelopeToSend.messages = envelope.messages.slice(begin, end);\n envelopeToSend.onSuccess = envelope.onSuccess;\n envelopeToSend.onFailure = envelope.onFailure;\n\n for (var i = 1; i < lengths.length; ++i) {\n var nextEnvelope = this._mixin(false, {}, envelope);\n begin = end;\n end += lengths[i];\n nextEnvelope.messages = envelope.messages.slice(begin, end);\n nextEnvelope.onSuccess = envelope.onSuccess;\n nextEnvelope.onFailure = envelope.onFailure;\n this.send(nextEnvelope, request.metaConnect);\n }\n }\n\n this._debug('Transport', this.getType(), 'sending request', request.id, 'envelope', envelopeToSend);\n\n try {\n var sameStack = true;\n this.jsonpSend({\n transport: this,\n url: envelopeToSend.url,\n sync: envelopeToSend.sync,\n headers: this.getConfiguration().requestHeaders,\n body: JSON.stringify(envelopeToSend.messages),\n onSuccess: function(responses) {\n var success = false;\n try {\n var received = self.convertToMessages(responses);\n if (received.length === 0) {\n self.transportFailure(envelopeToSend, request, {\n httpCode: 204\n });\n } else {\n success = true;\n self.transportSuccess(envelopeToSend, request, received);\n }\n } catch (x) {\n self._debug(x);\n if (!success) {\n self.transportFailure(envelopeToSend, request, {\n exception: x\n });\n }\n }\n },\n onError: function(reason, exception) {\n var failure = {\n reason: reason,\n exception: exception\n };\n if (sameStack) {\n // Keep the semantic of calling response callbacks asynchronously after the request\n self.setTimeout(function() {\n self.transportFailure(envelopeToSend, request, failure);\n }, 0);\n } else {\n self.transportFailure(envelopeToSend, request, failure);\n }\n }\n });\n sameStack = false;\n } catch (xx) {\n // Keep the semantic of calling response callbacks asynchronously after the request\n this.setTimeout(function() {\n self.transportFailure(envelopeToSend, request, {\n exception: xx\n });\n }, 0);\n }\n };\n\n return _self;\n };\n\n\n var WebSocketTransport = function() {\n var _super = new Transport();\n var _self = Transport.derive(_super);\n var _cometd;\n // By default WebSocket is supported\n var _webSocketSupported = true;\n // Whether we were able to establish a WebSocket connection\n var _webSocketConnected = false;\n var _stickyReconnect = true;\n // The context contains the envelopes that have been sent\n // and the timeouts for the messages that have been sent.\n var _context = null;\n var _connecting = null;\n var _connected = false;\n var _successCallback = null;\n\n _self.reset = function(init) {\n _super.reset(init);\n _webSocketSupported = true;\n if (init) {\n _webSocketConnected = false;\n }\n _stickyReconnect = true;\n _context = null;\n _connecting = null;\n _connected = false;\n };\n\n function _forceClose(context, event) {\n if (context) {\n this.webSocketClose(context, event.code, event.reason);\n // Force immediate failure of pending messages to trigger reconnect.\n // This is needed because the server may not reply to our close()\n // and therefore the onclose function is never called.\n this.onClose(context, event);\n }\n }\n\n function _sameContext(context) {\n return context === _connecting || context === _context;\n }\n\n function _storeEnvelope(context, envelope, metaConnect) {\n var messageIds = [];\n for (var i = 0; i < envelope.messages.length; ++i) {\n var message = envelope.messages[i];\n if (message.id) {\n messageIds.push(message.id);\n }\n }\n context.envelopes[messageIds.join(',')] = [envelope, metaConnect];\n this._debug('Transport', this.getType(), 'stored envelope, envelopes', context.envelopes);\n }\n\n function _websocketConnect(context) {\n // We may have multiple attempts to open a WebSocket\n // connection, for example a /meta/connect request that\n // may take time, along with a user-triggered publish.\n // Early return if we are already connecting.\n if (_connecting) {\n return;\n }\n\n // Mangle the URL, changing the scheme from 'http' to 'ws'.\n var url = _cometd.getURL().replace(/^http/, 'ws');\n this._debug('Transport', this.getType(), 'connecting to URL', url);\n\n try {\n var protocol = _cometd.getConfiguration().protocol;\n context.webSocket = protocol ? new window.WebSocket(url, protocol) : new window.WebSocket(url);\n _connecting = context;\n } catch (x) {\n _webSocketSupported = false;\n this._debug('Exception while creating WebSocket object', x);\n throw x;\n }\n\n // By default use sticky reconnects.\n _stickyReconnect = _cometd.getConfiguration().stickyReconnect !== false;\n\n var self = this;\n var connectTimeout = _cometd.getConfiguration().connectTimeout;\n if (connectTimeout > 0) {\n context.connectTimer = this.setTimeout(function() {\n _cometd._debug('Transport', self.getType(), 'timed out while connecting to URL', url, ':', connectTimeout, 'ms');\n // The connection was not opened, close anyway.\n _forceClose.call(self, context, {code: 1000, reason: 'Connect Timeout'});\n }, connectTimeout);\n }\n\n var onopen = function() {\n _cometd._debug('WebSocket onopen', context);\n if (context.connectTimer) {\n self.clearTimeout(context.connectTimer);\n }\n\n if (_sameContext(context)) {\n _connecting = null;\n _context = context;\n _webSocketConnected = true;\n self.onOpen(context);\n } else {\n // We have a valid connection already, close this one.\n _cometd._warn('Closing extra WebSocket connection', this, 'active connection', _context);\n _forceClose.call(self, context, {code: 1000, reason: 'Extra Connection'});\n }\n };\n\n // This callback is invoked when the server sends the close frame.\n // The close frame for a connection may arrive *after* another\n // connection has been opened, so we must make sure that actions\n // are performed only if it's the same connection.\n var onclose = function(event) {\n event = event || {code: 1000};\n _cometd._debug('WebSocket onclose', context, event, 'connecting', _connecting, 'current', _context);\n\n if (context.connectTimer) {\n self.clearTimeout(context.connectTimer);\n }\n\n self.onClose(context, event);\n };\n\n var onmessage = function(wsMessage) {\n _cometd._debug('WebSocket onmessage', wsMessage, context);\n self.onMessage(context, wsMessage);\n };\n\n context.webSocket.onopen = onopen;\n context.webSocket.onclose = onclose;\n context.webSocket.onerror = function() {\n // Clients should call onclose(), but if they do not we do it here for safety.\n onclose({code: 1000, reason: 'Error'});\n };\n context.webSocket.onmessage = onmessage;\n\n this._debug('Transport', this.getType(), 'configured callbacks on', context);\n }\n\n function _webSocketSend(context, envelope, metaConnect) {\n var json = JSON.stringify(envelope.messages);\n context.webSocket.send(json);\n this._debug('Transport', this.getType(), 'sent', envelope, '/meta/connect =', metaConnect);\n\n // Manage the timeout waiting for the response.\n var maxDelay = this.getConfiguration().maxNetworkDelay;\n var delay = maxDelay;\n if (metaConnect) {\n delay += this.getAdvice().timeout;\n _connected = true;\n }\n\n var self = this;\n var messageIds = [];\n for (var i = 0; i < envelope.messages.length; ++i) {\n (function() {\n var message = envelope.messages[i];\n if (message.id) {\n messageIds.push(message.id);\n context.timeouts[message.id] = self.setTimeout(function() {\n _cometd._debug('Transport', self.getType(), 'timing out message', message.id, 'after', delay, 'on', context);\n _forceClose.call(self, context, {code: 1000, reason: 'Message Timeout'});\n }, delay);\n }\n })();\n }\n\n this._debug('Transport', this.getType(), 'waiting at most', delay, 'ms for messages', messageIds, 'maxNetworkDelay', maxDelay, ', timeouts:', context.timeouts);\n }\n\n _self._notifySuccess = function(fn, messages) {\n fn.call(this, messages);\n };\n\n _self._notifyFailure = function(fn, context, messages, failure) {\n fn.call(this, context, messages, failure);\n };\n\n function _send(context, envelope, metaConnect) {\n try {\n if (context === null) {\n context = _connecting || {\n envelopes: {},\n timeouts: {}\n };\n _storeEnvelope.call(this, context, envelope, metaConnect);\n _websocketConnect.call(this, context);\n } else {\n _storeEnvelope.call(this, context, envelope, metaConnect);\n _webSocketSend.call(this, context, envelope, metaConnect);\n }\n } catch (x) {\n // Keep the semantic of calling response callbacks asynchronously after the request.\n var self = this;\n this.setTimeout(function() {\n _forceClose.call(self, context, {\n code: 1000,\n reason: 'Exception',\n exception: x\n });\n }, 0);\n }\n }\n\n _self.onOpen = function(context) {\n var envelopes = context.envelopes;\n this._debug('Transport', this.getType(), 'opened', context, 'pending messages', envelopes);\n for (var key in envelopes) {\n if (envelopes.hasOwnProperty(key)) {\n var element = envelopes[key];\n var envelope = element[0];\n var metaConnect = element[1];\n // Store the success callback, which is independent from the envelope,\n // so that it can be used to notify arrival of messages.\n _successCallback = envelope.onSuccess;\n _webSocketSend.call(this, context, envelope, metaConnect);\n }\n }\n };\n\n _self.onMessage = function(context, wsMessage) {\n this._debug('Transport', this.getType(), 'received websocket message', wsMessage, context);\n\n var close = false;\n var messages = this.convertToMessages(wsMessage.data);\n var messageIds = [];\n for (var i = 0; i < messages.length; ++i) {\n var message = messages[i];\n\n // Detect if the message is a response to a request we made.\n // If it's a meta message, for sure it's a response; otherwise it's\n // a publish message and publish responses don't have the data field.\n if (/^\\/meta\\//.test(message.channel) || message.data === undefined) {\n if (message.id) {\n messageIds.push(message.id);\n\n var timeout = context.timeouts[message.id];\n if (timeout) {\n this.clearTimeout(timeout);\n delete context.timeouts[message.id];\n this._debug('Transport', this.getType(), 'removed timeout for message', message.id, ', timeouts', context.timeouts);\n }\n }\n }\n\n if ('/meta/connect' === message.channel) {\n _connected = false;\n }\n if ('/meta/disconnect' === message.channel && !_connected) {\n close = true;\n }\n }\n\n // Remove the envelope corresponding to the messages.\n var removed = false;\n var envelopes = context.envelopes;\n for (var j = 0; j < messageIds.length; ++j) {\n var id = messageIds[j];\n for (var key in envelopes) {\n if (envelopes.hasOwnProperty(key)) {\n var ids = key.split(',');\n var index = Utils.inArray(id, ids);\n if (index >= 0) {\n removed = true;\n ids.splice(index, 1);\n var envelope = envelopes[key][0];\n var metaConnect = envelopes[key][1];\n delete envelopes[key];\n if (ids.length > 0) {\n envelopes[ids.join(',')] = [envelope, metaConnect];\n }\n break;\n }\n }\n }\n }\n if (removed) {\n this._debug('Transport', this.getType(), 'removed envelope, envelopes', envelopes);\n }\n\n this._notifySuccess(_successCallback, messages);\n\n if (close) {\n this.webSocketClose(context, 1000, 'Disconnect');\n }\n };\n\n _self.onClose = function(context, event) {\n this._debug('Transport', this.getType(), 'closed', context, event);\n\n if (_sameContext(context)) {\n // Remember if we were able to connect.\n // This close event could be due to server shutdown,\n // and if it restarts we want to try websocket again.\n _webSocketSupported = _stickyReconnect && _webSocketConnected;\n _connecting = null;\n _context = null;\n }\n\n var timeouts = context.timeouts;\n context.timeouts = {};\n for (var id in timeouts) {\n if (timeouts.hasOwnProperty(id)) {\n this.clearTimeout(timeouts[id]);\n }\n }\n\n var envelopes = context.envelopes;\n context.envelopes = {};\n for (var key in envelopes) {\n if (envelopes.hasOwnProperty(key)) {\n var envelope = envelopes[key][0];\n var metaConnect = envelopes[key][1];\n if (metaConnect) {\n _connected = false;\n }\n var failure = {\n websocketCode: event.code,\n reason: event.reason\n };\n if (event.exception) {\n failure.exception = event.exception;\n }\n this._notifyFailure(envelope.onFailure, context, envelope.messages, failure);\n }\n }\n };\n\n _self.registered = function(type, cometd) {\n _super.registered(type, cometd);\n _cometd = cometd;\n };\n\n _self.accept = function(version, crossDomain, url) {\n this._debug('Transport', this.getType(), 'accept, supported:', _webSocketSupported);\n // Using !! to return a boolean (and not the WebSocket object).\n return _webSocketSupported && !!window.WebSocket && _cometd.websocketEnabled !== false;\n };\n\n _self.send = function(envelope, metaConnect) {\n this._debug('Transport', this.getType(), 'sending', envelope, '/meta/connect =', metaConnect);\n _send.call(this, _context, envelope, metaConnect);\n };\n\n _self.webSocketClose = function(context, code, reason) {\n try {\n if (context.webSocket) {\n context.webSocket.close(code, reason);\n }\n } catch (x) {\n this._debug(x);\n }\n };\n\n _self.abort = function() {\n _super.abort();\n _forceClose.call(this, _context, {code: 1000, reason: 'Abort'});\n this.reset(true);\n };\n\n return _self;\n };\n\n\n /**\n * The constructor for a CometD object, identified by an optional name.\n * The default name is the string 'default'.\n * @param name the optional name of this cometd object\n */\n var CometD = function(name) {\n var _scheduler = new Scheduler();\n var _cometd = this;\n var _name = name || 'default';\n var _crossDomain = false;\n var _transports = new TransportRegistry();\n var _transport;\n var _status = 'disconnected';\n var _messageId = 0;\n var _clientId = null;\n var _batch = 0;\n var _messageQueue = [];\n var _internalBatch = false;\n var _listenerId = 0;\n var _listeners = {};\n var _backoff = 0;\n var _scheduledSend = null;\n var _extensions = [];\n var _advice = {};\n var _handshakeProps;\n var _handshakeCallback;\n var _callbacks = {};\n var _remoteCalls = {};\n var _reestablish = false;\n var _connected = false;\n var _unconnectTime = 0;\n var _handshakeMessages = 0;\n var _metaConnect = null;\n var _config = {\n useWorkerScheduler: true,\n protocol: null,\n stickyReconnect: true,\n connectTimeout: 0,\n maxConnections: 2,\n backoffIncrement: 1000,\n maxBackoff: 60000,\n logLevel: 'info',\n maxNetworkDelay: 10000,\n requestHeaders: {},\n appendMessageTypeToURL: true,\n autoBatch: false,\n urls: {},\n maxURILength: 2000,\n advice: {\n timeout: 60000,\n interval: 0,\n reconnect: undefined,\n maxInterval: 0\n }\n };\n\n function _fieldValue(object, name) {\n try {\n return object[name];\n } catch (x) {\n return undefined;\n }\n }\n\n /**\n * Mixes in the given objects into the target object by copying the properties.\n * @param deep if the copy must be deep\n * @param target the target object\n * @param objects the objects whose properties are copied into the target\n */\n this._mixin = function(deep, target, objects) {\n var result = target || {};\n\n // Skip first 2 parameters (deep and target), and loop over the others\n for (var i = 2; i < arguments.length; ++i) {\n var object = arguments[i];\n\n if (object === undefined || object === null) {\n continue;\n }\n\n for (var propName in object) {\n if (object.hasOwnProperty(propName)) {\n var prop = _fieldValue(object, propName);\n var targ = _fieldValue(result, propName);\n\n // Avoid infinite loops\n if (prop === target) {\n continue;\n }\n // Do not mixin undefined values\n if (prop === undefined) {\n continue;\n }\n\n if (deep && typeof prop === 'object' && prop !== null) {\n if (prop instanceof Array) {\n result[propName] = this._mixin(deep, targ instanceof Array ? targ : [], prop);\n } else {\n var source = typeof targ === 'object' && !(targ instanceof Array) ? targ : {};\n result[propName] = this._mixin(deep, source, prop);\n }\n } else {\n result[propName] = prop;\n }\n }\n }\n }\n\n return result;\n };\n\n function _isString(value) {\n return Utils.isString(value);\n }\n\n function _isFunction(value) {\n if (value === undefined || value === null) {\n return false;\n }\n return typeof value === 'function';\n }\n\n function _zeroPad(value, length) {\n var result = '';\n while (--length > 0) {\n if (value >= Math.pow(10, length)) {\n break;\n }\n result += '0';\n }\n result += value;\n return result;\n }\n\n function _log(level, args) {\n if (window.console) {\n var logger = window.console[level];\n if (_isFunction(logger)) {\n var now = new Date();\n [].splice.call(args, 0, 0, _zeroPad(now.getHours(), 2) + ':' + _zeroPad(now.getMinutes(), 2) + ':' +\n _zeroPad(now.getSeconds(), 2) + '.' + _zeroPad(now.getMilliseconds(), 3));\n logger.apply(window.console, args);\n }\n }\n }\n\n this._warn = function() {\n _log('warn', arguments);\n };\n\n this._info = function() {\n if (_config.logLevel !== 'warn') {\n _log('info', arguments);\n }\n };\n\n this._debug = function() {\n if (_config.logLevel === 'debug') {\n _log('debug', arguments);\n }\n };\n\n function _splitURL(url) {\n // [1] = protocol://,\n // [2] = host:port,\n // [3] = host,\n // [4] = IPv6_host,\n // [5] = IPv4_host,\n // [6] = :port,\n // [7] = port,\n // [8] = uri,\n // [9] = rest (query / fragment)\n return new RegExp('(^https?://)?(((\\\\[[^\\\\]]+])|([^:/?#]+))(:(\\\\d+))?)?([^?#]*)(.*)?').exec(url);\n }\n\n /**\n * Returns whether the given hostAndPort is cross domain.\n * The default implementation checks against window.location.host\n * but this function can be overridden to make it work in non-browser\n * environments.\n *\n * @param hostAndPort the host and port in format host:port\n * @return whether the given hostAndPort is cross domain\n */\n this._isCrossDomain = function(hostAndPort) {\n if (window.location && window.location.host) {\n if (hostAndPort) {\n return hostAndPort !== window.location.host;\n }\n }\n return false;\n };\n\n function _configure(configuration) {\n _cometd._debug('Configuring cometd object with', configuration);\n // Support old style param, where only the Bayeux server URL was passed.\n if (_isString(configuration)) {\n configuration = {\n url: configuration\n };\n }\n if (!configuration) {\n configuration = {};\n }\n\n _config = _cometd._mixin(false, _config, configuration);\n\n var url = _cometd.getURL();\n if (!url) {\n throw 'Missing required configuration parameter \\'url\\' specifying the Bayeux server URL';\n }\n\n // Check if we're cross domain.\n var urlParts = _splitURL(url);\n var hostAndPort = urlParts[2];\n var uri = urlParts[8];\n var afterURI = urlParts[9];\n _crossDomain = _cometd._isCrossDomain(hostAndPort);\n\n // Check if appending extra path is supported.\n if (_config.appendMessageTypeToURL) {\n if (afterURI !== undefined && afterURI.length > 0) {\n _cometd._info('Appending message type to URI ' + uri + afterURI + ' is not supported, disabling \\'appendMessageTypeToURL\\' configuration');\n _config.appendMessageTypeToURL = false;\n } else {\n var uriSegments = uri.split('/');\n var lastSegmentIndex = uriSegments.length - 1;\n if (uri.match(/\\/$/)) {\n lastSegmentIndex -= 1;\n }\n if (uriSegments[lastSegmentIndex].indexOf('.') >= 0) {\n // Very likely the CometD servlet's URL pattern is mapped to an extension, such as *.cometd\n // It will be difficult to add the extra path in this case\n _cometd._info('Appending message type to URI ' + uri + ' is not supported, disabling \\'appendMessageTypeToURL\\' configuration');\n _config.appendMessageTypeToURL = false;\n }\n }\n }\n\n if (window.Worker && window.Blob && window.URL && _config.useWorkerScheduler) {\n var code = WorkerScheduler.toString();\n // Remove the function declaration, the opening brace and the closing brace.\n code = code.substring(code.indexOf('{') + 1, code.lastIndexOf('}'));\n var blob = new window.Blob([code], {\n type: 'application/json'\n });\n var blobURL = window.URL.createObjectURL(blob);\n var worker = new window.Worker(blobURL);\n _scheduler.setTimeout = function(funktion, delay) {\n var id = _scheduler.register(funktion);\n worker.postMessage({\n id: id,\n type: 'setTimeout',\n delay: delay\n });\n return id;\n };\n _scheduler.clearTimeout = function(id) {\n _scheduler.unregister(id);\n worker.postMessage({\n id: id,\n type: 'clearTimeout'\n });\n };\n worker.onmessage = function(e) {\n var id = e.data.id;\n var funktion = _scheduler.unregister(id);\n if (funktion) {\n funktion();\n }\n };\n }\n }\n\n function _removeListener(subscription) {\n if (subscription) {\n var subscriptions = _listeners[subscription.channel];\n if (subscriptions && subscriptions[subscription.id]) {\n delete subscriptions[subscription.id];\n _cometd._debug('Removed', subscription.listener ? 'listener' : 'subscription', subscription);\n }\n }\n }\n\n function _removeSubscription(subscription) {\n if (subscription && !subscription.listener) {\n _removeListener(subscription);\n }\n }\n\n function _clearSubscriptions() {\n for (var channel in _listeners) {\n if (_listeners.hasOwnProperty(channel)) {\n var subscriptions = _listeners[channel];\n if (subscriptions) {\n for (var id in subscriptions) {\n if (subscriptions.hasOwnProperty(id)) {\n _removeSubscription(subscriptions[id]);\n }\n }\n }\n }\n }\n }\n\n function _setStatus(newStatus) {\n if (_status !== newStatus) {\n _cometd._debug('Status', _status, '->', newStatus);\n _status = newStatus;\n }\n }\n\n function _isDisconnected() {\n return _status === 'disconnecting' || _status === 'disconnected';\n }\n\n function _nextMessageId() {\n var result = ++_messageId;\n return '' + result;\n }\n\n function _applyExtension(scope, callback, name, message, outgoing) {\n try {\n return callback.call(scope, message);\n } catch (x) {\n var handler = _cometd.onExtensionException;\n if (_isFunction(handler)) {\n _cometd._debug('Invoking extension exception handler', name, x);\n try {\n handler.call(_cometd, x, name, outgoing, message);\n } catch (xx) {\n _cometd._info('Exception during execution of extension exception handler', name, xx);\n }\n } else {\n _cometd._info('Exception during execution of extension', name, x);\n }\n return message;\n }\n }\n\n function _applyIncomingExtensions(message) {\n for (var i = 0; i < _extensions.length; ++i) {\n if (message === undefined || message === null) {\n break;\n }\n\n var extension = _extensions[i];\n var callback = extension.extension.incoming;\n if (_isFunction(callback)) {\n var result = _applyExtension(extension.extension, callback, extension.name, message, false);\n message = result === undefined ? message : result;\n }\n }\n return message;\n }\n\n function _applyOutgoingExtensions(message) {\n for (var i = _extensions.length - 1; i >= 0; --i) {\n if (message === undefined || message === null) {\n break;\n }\n\n var extension = _extensions[i];\n var callback = extension.extension.outgoing;\n if (_isFunction(callback)) {\n var result = _applyExtension(extension.extension, callback, extension.name, message, true);\n message = result === undefined ? message : result;\n }\n }\n return message;\n }\n\n function _notify(channel, message) {\n var subscriptions = _listeners[channel];\n if (subscriptions) {\n for (var id in subscriptions) {\n if (subscriptions.hasOwnProperty(id)) {\n var subscription = subscriptions[id];\n // Subscriptions may come and go, so the array may have 'holes'\n if (subscription) {\n try {\n subscription.callback.call(subscription.scope, message);\n } catch (x) {\n var handler = _cometd.onListenerException;\n if (_isFunction(handler)) {\n _cometd._debug('Invoking listener exception handler', subscription, x);\n try {\n handler.call(_cometd, x, subscription, subscription.listener, message);\n } catch (xx) {\n _cometd._info('Exception during execution of listener exception handler', subscription, xx);\n }\n } else {\n _cometd._info('Exception during execution of listener', subscription, message, x);\n }\n }\n }\n }\n }\n }\n }\n\n function _notifyListeners(channel, message) {\n // Notify direct listeners\n _notify(channel, message);\n\n // Notify the globbing listeners\n var channelParts = channel.split('/');\n var last = channelParts.length - 1;\n for (var i = last; i > 0; --i) {\n var channelPart = channelParts.slice(0, i).join('/') + '/*';\n // We don't want to notify /foo/* if the channel is /foo/bar/baz,\n // so we stop at the first non recursive globbing\n if (i === last) {\n _notify(channelPart, message);\n }\n // Add the recursive globber and notify\n channelPart += '*';\n _notify(channelPart, message);\n }\n }\n\n function _cancelDelayedSend() {\n if (_scheduledSend !== null) {\n _cometd.clearTimeout(_scheduledSend);\n }\n _scheduledSend = null;\n }\n\n function _delayedSend(operation, delay) {\n _cancelDelayedSend();\n var time = _advice.interval + delay;\n _cometd._debug('Function scheduled in', time, 'ms, interval =', _advice.interval, 'backoff =', _backoff, operation);\n _scheduledSend = _cometd.setTimeout(operation, time);\n }\n\n // Needed to break cyclic dependencies between function definitions\n var _handleMessages;\n var _handleFailure;\n\n /**\n * Delivers the messages to the CometD server\n * @param messages the array of messages to send\n * @param metaConnect true if this send is on /meta/connect\n * @param extraPath an extra path to append to the Bayeux server URL\n */\n function _send(messages, metaConnect, extraPath) {\n // We must be sure that the messages have a clientId.\n // This is not guaranteed since the handshake may take time to return\n // (and hence the clientId is not known yet) and the application\n // may create other messages.\n for (var i = 0; i < messages.length; ++i) {\n var message = messages[i];\n var messageId = message.id;\n\n if (_clientId) {\n message.clientId = _clientId;\n }\n\n message = _applyOutgoingExtensions(message);\n if (message !== undefined && message !== null) {\n // Extensions may have modified the message id, but we need to own it.\n message.id = messageId;\n messages[i] = message;\n } else {\n delete _callbacks[messageId];\n messages.splice(i--, 1);\n }\n }\n\n if (messages.length === 0) {\n return;\n }\n\n if (metaConnect) {\n _metaConnect = messages[0];\n }\n\n var url = _cometd.getURL();\n if (_config.appendMessageTypeToURL) {\n // If url does not end with '/', then append it\n if (!url.match(/\\/$/)) {\n url = url + '/';\n }\n if (extraPath) {\n url = url + extraPath;\n }\n }\n\n var envelope = {\n url: url,\n sync: false,\n messages: messages,\n onSuccess: function(rcvdMessages) {\n try {\n _handleMessages.call(_cometd, rcvdMessages);\n } catch (x) {\n _cometd._info('Exception during handling of messages', x);\n }\n },\n onFailure: function(conduit, messages, failure) {\n try {\n var transport = _cometd.getTransport();\n failure.connectionType = transport ? transport.getType() : \"unknown\";\n _handleFailure.call(_cometd, conduit, messages, failure);\n } catch (x) {\n _cometd._info('Exception during handling of failure', x);\n }\n }\n };\n _cometd._debug('Send', envelope);\n _transport.send(envelope, metaConnect);\n }\n\n function _queueSend(message) {\n if (_batch > 0 || _internalBatch === true) {\n _messageQueue.push(message);\n } else {\n _send([message], false);\n }\n }\n\n /**\n * Sends a complete bayeux message.\n * This method is exposed as a public so that extensions may use it\n * to send bayeux message directly, for example in case of re-sending\n * messages that have already been sent but that for some reason must\n * be resent.\n */\n this.send = _queueSend;\n\n function _resetBackoff() {\n _backoff = 0;\n }\n\n function _increaseBackoff() {\n if (_backoff < _config.maxBackoff) {\n _backoff += _config.backoffIncrement;\n }\n return _backoff;\n }\n\n /**\n * Starts a the batch of messages to be sent in a single request.\n * @see #_endBatch(sendMessages)\n */\n function _startBatch() {\n ++_batch;\n _cometd._debug('Starting batch, depth', _batch);\n }\n\n function _flushBatch() {\n var messages = _messageQueue;\n _messageQueue = [];\n if (messages.length > 0) {\n _send(messages, false);\n }\n }\n\n /**\n * Ends the batch of messages to be sent in a single request,\n * optionally sending messages present in the message queue depending\n * on the given argument.\n * @see #_startBatch()\n */\n function _endBatch() {\n --_batch;\n _cometd._debug('Ending batch, depth', _batch);\n if (_batch < 0) {\n throw 'Calls to startBatch() and endBatch() are not paired';\n }\n\n if (_batch === 0 && !_isDisconnected() && !_internalBatch) {\n _flushBatch();\n }\n }\n\n /**\n * Sends the connect message\n */\n function _connect() {\n if (!_isDisconnected()) {\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: '/meta/connect',\n connectionType: _transport.getType()\n };\n\n // In case of reload or temporary loss of connection\n // we want the next successful connect to return immediately\n // instead of being held by the server, so that connect listeners\n // can be notified that the connection has been re-established\n if (!_connected) {\n bayeuxMessage.advice = {\n timeout: 0\n };\n }\n\n _setStatus('connecting');\n _cometd._debug('Connect sent', bayeuxMessage);\n _send([bayeuxMessage], true, 'connect');\n _setStatus('connected');\n }\n }\n\n function _delayedConnect(delay) {\n _setStatus('connecting');\n _delayedSend(function() {\n _connect();\n }, delay);\n }\n\n function _updateAdvice(newAdvice) {\n if (newAdvice) {\n _advice = _cometd._mixin(false, {}, _config.advice, newAdvice);\n _cometd._debug('New advice', _advice);\n }\n }\n\n function _disconnect(abort) {\n _cancelDelayedSend();\n if (abort && _transport) {\n _transport.abort();\n }\n _crossDomain = false;\n _transport = null;\n _setStatus('disconnected');\n _clientId = null;\n _batch = 0;\n _resetBackoff();\n _reestablish = false;\n _connected = false;\n _unconnectTime = 0;\n _metaConnect = null;\n\n // Fail any existing queued message\n if (_messageQueue.length > 0) {\n var messages = _messageQueue;\n _messageQueue = [];\n _handleFailure.call(_cometd, undefined, messages, {\n reason: 'Disconnected'\n });\n }\n }\n\n function _notifyTransportException(oldTransport, newTransport, failure) {\n var handler = _cometd.onTransportException;\n if (_isFunction(handler)) {\n _cometd._debug('Invoking transport exception handler', oldTransport, newTransport, failure);\n try {\n handler.call(_cometd, failure, oldTransport, newTransport);\n } catch (x) {\n _cometd._info('Exception during execution of transport exception handler', x);\n }\n }\n }\n\n /**\n * Sends the initial handshake message\n */\n function _handshake(handshakeProps, handshakeCallback) {\n if (_isFunction(handshakeProps)) {\n handshakeCallback = handshakeProps;\n handshakeProps = undefined;\n }\n\n _clientId = null;\n\n _clearSubscriptions();\n\n // Reset the transports if we're not retrying the handshake\n if (_isDisconnected()) {\n _transports.reset(true);\n }\n\n // Reset the advice.\n _updateAdvice({});\n\n _batch = 0;\n\n // Mark the start of an internal batch.\n // This is needed because handshake and connect are async.\n // It may happen that the application calls init() then subscribe()\n // and the subscribe message is sent before the connect message, if\n // the subscribe message is not held until the connect message is sent.\n // So here we start a batch to hold temporarily any message until\n // the connection is fully established.\n _internalBatch = true;\n\n // Save the properties provided by the user, so that\n // we can reuse them during automatic re-handshake\n _handshakeProps = handshakeProps;\n _handshakeCallback = handshakeCallback;\n\n var version = '1.0';\n\n // Figure out the transports to send to the server\n var url = _cometd.getURL();\n var transportTypes = _transports.findTransportTypes(version, _crossDomain, url);\n\n var bayeuxMessage = {\n id: _nextMessageId(),\n version: version,\n minimumVersion: version,\n channel: '/meta/handshake',\n supportedConnectionTypes: transportTypes,\n advice: {\n timeout: _advice.timeout,\n interval: _advice.interval\n }\n };\n // Do not allow the user to override important fields.\n var message = _cometd._mixin(false, {}, _handshakeProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, handshakeCallback);\n\n // Pick up the first available transport as initial transport\n // since we don't know if the server supports it\n if (!_transport) {\n _transport = _transports.negotiateTransport(transportTypes, version, _crossDomain, url);\n if (!_transport) {\n var failure = 'Could not find initial transport among: ' + _transports.getTransportTypes();\n _cometd._warn(failure);\n throw failure;\n }\n }\n\n _cometd._debug('Initial transport is', _transport.getType());\n\n // We started a batch to hold the application messages,\n // so here we must bypass it and send immediately.\n _setStatus('handshaking');\n _cometd._debug('Handshake sent', message);\n _send([message], false, 'handshake');\n }\n\n function _delayedHandshake(delay) {\n _setStatus('handshaking');\n\n // We will call _handshake() which will reset _clientId, but we want to avoid\n // that between the end of this method and the call to _handshake() someone may\n // call publish() (or other methods that call _queueSend()).\n _internalBatch = true;\n\n _delayedSend(function() {\n _handshake(_handshakeProps, _handshakeCallback);\n }, delay);\n }\n\n function _notifyCallback(callback, message) {\n try {\n callback.call(_cometd, message);\n } catch (x) {\n var handler = _cometd.onCallbackException;\n if (_isFunction(handler)) {\n _cometd._debug('Invoking callback exception handler', x);\n try {\n handler.call(_cometd, x, message);\n } catch (xx) {\n _cometd._info('Exception during execution of callback exception handler', xx);\n }\n } else {\n _cometd._info('Exception during execution of message callback', x);\n }\n }\n }\n\n this._getCallback = function(messageId) {\n return _callbacks[messageId];\n };\n\n this._putCallback = function(messageId, callback) {\n var result = this._getCallback(messageId);\n if (_isFunction(callback)) {\n _callbacks[messageId] = callback;\n }\n return result;\n };\n\n function _handleCallback(message) {\n var callback = _cometd._getCallback([message.id]);\n if (_isFunction(callback)) {\n delete _callbacks[message.id];\n _notifyCallback(callback, message);\n }\n }\n\n function _handleRemoteCall(message) {\n var context = _remoteCalls[message.id];\n delete _remoteCalls[message.id];\n if (context) {\n _cometd._debug('Handling remote call response for', message, 'with context', context);\n\n // Clear the timeout, if present.\n var timeout = context.timeout;\n if (timeout) {\n _cometd.clearTimeout(timeout);\n }\n\n var callback = context.callback;\n if (_isFunction(callback)) {\n _notifyCallback(callback, message);\n return true;\n }\n }\n return false;\n }\n\n this.onTransportFailure = function(message, failureInfo, failureHandler) {\n this._debug('Transport failure', failureInfo, 'for', message);\n\n var transports = this.getTransportRegistry();\n var url = this.getURL();\n var crossDomain = this._isCrossDomain(_splitURL(url)[2]);\n var version = '1.0';\n var transportTypes = transports.findTransportTypes(version, crossDomain, url);\n\n if (failureInfo.action === 'none') {\n if (message.channel === '/meta/handshake') {\n if (!failureInfo.transport) {\n var failure = 'Could not negotiate transport, client=[' + transportTypes + '], server=[' + message.supportedConnectionTypes + ']';\n this._warn(failure);\n _notifyTransportException(_transport.getType(), null, {\n reason: failure,\n connectionType: _transport.getType(),\n transport: _transport\n });\n }\n }\n } else {\n failureInfo.delay = this.getBackoffPeriod();\n // Different logic depending on whether we are handshaking or connecting.\n if (message.channel === '/meta/handshake') {\n if (!failureInfo.transport) {\n // The transport is invalid, try to negotiate again.\n var oldTransportType = _transport ? _transport.getType() : null;\n var newTransport = transports.negotiateTransport(transportTypes, version, crossDomain, url);\n if (!newTransport) {\n this._warn('Could not negotiate transport, client=[' + transportTypes + ']');\n _notifyTransportException(oldTransportType, null, message.failure);\n failureInfo.action = 'none';\n } else {\n var newTransportType = newTransport.getType();\n this._debug('Transport', oldTransportType, '->', newTransportType);\n _notifyTransportException(oldTransportType, newTransportType, message.failure);\n failureInfo.action = 'handshake';\n failureInfo.transport = newTransport;\n }\n }\n\n if (failureInfo.action !== 'none') {\n this.increaseBackoffPeriod();\n }\n } else {\n var now = new Date().getTime();\n\n if (_unconnectTime === 0) {\n _unconnectTime = now;\n }\n\n if (failureInfo.action === 'retry') {\n failureInfo.delay = this.increaseBackoffPeriod();\n // Check whether we may switch to handshaking.\n var maxInterval = _advice.maxInterval;\n if (maxInterval > 0) {\n var expiration = _advice.timeout + _advice.interval + maxInterval;\n var unconnected = now - _unconnectTime;\n if (unconnected + _backoff > expiration) {\n failureInfo.action = 'handshake';\n }\n }\n }\n\n if (failureInfo.action === 'handshake') {\n failureInfo.delay = 0;\n transports.reset(false);\n this.resetBackoffPeriod();\n }\n }\n }\n\n failureHandler.call(_cometd, failureInfo);\n };\n\n function _handleTransportFailure(failureInfo) {\n _cometd._debug('Transport failure handling', failureInfo);\n\n if (failureInfo.transport) {\n _transport = failureInfo.transport;\n }\n\n if (failureInfo.url) {\n _transport.setURL(failureInfo.url);\n }\n\n var action = failureInfo.action;\n var delay = failureInfo.delay || 0;\n switch (action) {\n case 'handshake':\n _delayedHandshake(delay);\n break;\n case 'retry':\n _delayedConnect(delay);\n break;\n case 'none':\n _disconnect(true);\n break;\n default:\n throw 'Unknown action ' + action;\n }\n }\n\n function _failHandshake(message, failureInfo) {\n _handleCallback(message);\n _notifyListeners('/meta/handshake', message);\n _notifyListeners('/meta/unsuccessful', message);\n\n // The listeners may have disconnected.\n if (_isDisconnected()) {\n failureInfo.action = 'none';\n }\n\n _cometd.onTransportFailure.call(_cometd, message, failureInfo, _handleTransportFailure);\n }\n\n function _handshakeResponse(message) {\n var url = _cometd.getURL();\n if (message.successful) {\n var crossDomain = _cometd._isCrossDomain(_splitURL(url)[2]);\n var newTransport = _transports.negotiateTransport(message.supportedConnectionTypes, message.version, crossDomain, url);\n if (newTransport === null) {\n message.successful = false;\n _failHandshake(message, {\n cause: 'negotiation',\n action: 'none',\n transport: null\n });\n return;\n } else if (_transport !== newTransport) {\n _cometd._debug('Transport', _transport.getType(), '->', newTransport.getType());\n _transport = newTransport;\n }\n\n _clientId = message.clientId;\n\n // End the internal batch and allow held messages from the application\n // to go to the server (see _handshake() where we start the internal batch).\n _internalBatch = false;\n _flushBatch();\n\n // Here the new transport is in place, as well as the clientId, so\n // the listeners can perform a publish() if they want.\n // Notify the listeners before the connect below.\n message.reestablish = _reestablish;\n _reestablish = true;\n\n _handleCallback(message);\n _notifyListeners('/meta/handshake', message);\n\n _handshakeMessages = message['x-messages'] || 0;\n\n var action = _isDisconnected() ? 'none' : _advice.reconnect || 'retry';\n switch (action) {\n case 'retry':\n _resetBackoff();\n if (_handshakeMessages === 0) {\n _delayedConnect(0);\n } else {\n _cometd._debug('Processing', _handshakeMessages, 'handshake-delivered messages');\n }\n break;\n case 'none':\n _disconnect(true);\n break;\n default:\n throw 'Unrecognized advice action ' + action;\n }\n } else {\n _failHandshake(message, {\n cause: 'unsuccessful',\n action: _advice.reconnect || 'handshake',\n transport: _transport\n });\n }\n }\n\n function _handshakeFailure(message) {\n _failHandshake(message, {\n cause: 'failure',\n action: 'handshake',\n transport: null\n });\n }\n\n function _matchMetaConnect(connect) {\n if (_status === 'disconnected') {\n return true;\n }\n if (_metaConnect && _metaConnect.id === connect.id) {\n _metaConnect = null;\n return true;\n }\n return false;\n }\n\n function _failConnect(message, failureInfo) {\n // Notify the listeners after the status change but before the next action.\n _notifyListeners('/meta/connect', message);\n _notifyListeners('/meta/unsuccessful', message);\n\n // The listeners may have disconnected.\n if (_isDisconnected()) {\n failureInfo.action = 'none';\n }\n\n _cometd.onTransportFailure.call(_cometd, message, failureInfo, _handleTransportFailure);\n }\n\n function _connectResponse(message) {\n if (_matchMetaConnect(message)) {\n _connected = message.successful;\n if (_connected) {\n _notifyListeners('/meta/connect', message);\n\n // Normally, the advice will say \"reconnect: 'retry', interval: 0\"\n // and the server will hold the request, so when a response returns\n // we immediately call the server again (long polling).\n // Listeners can call disconnect(), so check the state after they run.\n var action = _isDisconnected() ? 'none' : _advice.reconnect || 'retry';\n switch (action) {\n case 'retry':\n _resetBackoff();\n _delayedConnect(_backoff);\n break;\n case 'none':\n _disconnect(false);\n break;\n default:\n throw 'Unrecognized advice action ' + action;\n }\n } else {\n _failConnect(message, {\n cause: 'unsuccessful',\n action: _advice.reconnect || 'retry',\n transport: _transport\n });\n }\n } else {\n _cometd._debug('Mismatched /meta/connect reply', message);\n }\n }\n\n function _connectFailure(message) {\n if (_matchMetaConnect(message)) {\n _connected = false;\n _failConnect(message, {\n cause: 'failure',\n action: 'retry',\n transport: null\n });\n } else {\n _cometd._debug('Mismatched /meta/connect failure', message);\n }\n }\n\n function _failDisconnect(message) {\n _disconnect(true);\n _handleCallback(message);\n _notifyListeners('/meta/disconnect', message);\n _notifyListeners('/meta/unsuccessful', message);\n }\n\n function _disconnectResponse(message) {\n if (message.successful) {\n // Wait for the /meta/connect to arrive.\n _disconnect(false);\n _handleCallback(message);\n _notifyListeners('/meta/disconnect', message);\n } else {\n _failDisconnect(message);\n }\n }\n\n function _disconnectFailure(message) {\n _failDisconnect(message);\n }\n\n function _failSubscribe(message) {\n var subscriptions = _listeners[message.subscription];\n if (subscriptions) {\n for (var id in subscriptions) {\n if (subscriptions.hasOwnProperty(id)) {\n var subscription = subscriptions[id];\n if (subscription && !subscription.listener) {\n delete subscriptions[id];\n _cometd._debug('Removed failed subscription', subscription);\n }\n }\n }\n }\n _handleCallback(message);\n _notifyListeners('/meta/subscribe', message);\n _notifyListeners('/meta/unsuccessful', message);\n }\n\n function _subscribeResponse(message) {\n if (message.successful) {\n _handleCallback(message);\n _notifyListeners('/meta/subscribe', message);\n } else {\n _failSubscribe(message);\n }\n }\n\n function _subscribeFailure(message) {\n _failSubscribe(message);\n }\n\n function _failUnsubscribe(message) {\n _handleCallback(message);\n _notifyListeners('/meta/unsubscribe', message);\n _notifyListeners('/meta/unsuccessful', message);\n }\n\n function _unsubscribeResponse(message) {\n if (message.successful) {\n _handleCallback(message);\n _notifyListeners('/meta/unsubscribe', message);\n } else {\n _failUnsubscribe(message);\n }\n }\n\n function _unsubscribeFailure(message) {\n _failUnsubscribe(message);\n }\n\n function _failMessage(message) {\n if (!_handleRemoteCall(message)) {\n _handleCallback(message);\n _notifyListeners('/meta/publish', message);\n _notifyListeners('/meta/unsuccessful', message);\n }\n }\n\n function _messageResponse(message) {\n if (message.data !== undefined) {\n if (!_handleRemoteCall(message)) {\n _notifyListeners(message.channel, message);\n if (_handshakeMessages > 0) {\n --_handshakeMessages;\n if (_handshakeMessages === 0) {\n _cometd._debug('Processed last handshake-delivered message');\n _delayedConnect(0);\n }\n }\n }\n } else {\n if (message.successful === undefined) {\n _cometd._warn('Unknown Bayeux Message', message);\n } else {\n if (message.successful) {\n _handleCallback(message);\n _notifyListeners('/meta/publish', message);\n } else {\n _failMessage(message);\n }\n }\n }\n }\n\n function _messageFailure(failure) {\n _failMessage(failure);\n }\n\n function _receive(message) {\n _unconnectTime = 0;\n\n message = _applyIncomingExtensions(message);\n if (message === undefined || message === null) {\n return;\n }\n\n _updateAdvice(message.advice);\n\n var channel = message.channel;\n switch (channel) {\n case '/meta/handshake':\n _handshakeResponse(message);\n break;\n case '/meta/connect':\n _connectResponse(message);\n break;\n case '/meta/disconnect':\n _disconnectResponse(message);\n break;\n case '/meta/subscribe':\n _subscribeResponse(message);\n break;\n case '/meta/unsubscribe':\n _unsubscribeResponse(message);\n break;\n default:\n _messageResponse(message);\n break;\n }\n }\n\n /**\n * Receives a message.\n * This method is exposed as a public so that extensions may inject\n * messages simulating that they had been received.\n */\n this.receive = _receive;\n\n _handleMessages = function(rcvdMessages) {\n _cometd._debug('Received', rcvdMessages);\n\n for (var i = 0; i < rcvdMessages.length; ++i) {\n var message = rcvdMessages[i];\n _receive(message);\n }\n };\n\n _handleFailure = function(conduit, messages, failure) {\n _cometd._debug('handleFailure', conduit, messages, failure);\n\n failure.transport = conduit;\n for (var i = 0; i < messages.length; ++i) {\n var message = messages[i];\n var failureMessage = {\n id: message.id,\n successful: false,\n channel: message.channel,\n failure: failure\n };\n failure.message = message;\n switch (message.channel) {\n case '/meta/handshake':\n _handshakeFailure(failureMessage);\n break;\n case '/meta/connect':\n _connectFailure(failureMessage);\n break;\n case '/meta/disconnect':\n _disconnectFailure(failureMessage);\n break;\n case '/meta/subscribe':\n failureMessage.subscription = message.subscription;\n _subscribeFailure(failureMessage);\n break;\n case '/meta/unsubscribe':\n failureMessage.subscription = message.subscription;\n _unsubscribeFailure(failureMessage);\n break;\n default:\n _messageFailure(failureMessage);\n break;\n }\n }\n };\n\n function _hasSubscriptions(channel) {\n var subscriptions = _listeners[channel];\n if (subscriptions) {\n for (var id in subscriptions) {\n if (subscriptions.hasOwnProperty(id)) {\n if (subscriptions[id]) {\n return true;\n }\n }\n }\n }\n return false;\n }\n\n function _resolveScopedCallback(scope, callback) {\n var delegate = {\n scope: scope,\n method: callback\n };\n if (_isFunction(scope)) {\n delegate.scope = undefined;\n delegate.method = scope;\n } else {\n if (_isString(callback)) {\n if (!scope) {\n throw 'Invalid scope ' + scope;\n }\n delegate.method = scope[callback];\n if (!_isFunction(delegate.method)) {\n throw 'Invalid callback ' + callback + ' for scope ' + scope;\n }\n } else if (!_isFunction(callback)) {\n throw 'Invalid callback ' + callback;\n }\n }\n return delegate;\n }\n\n function _addListener(channel, scope, callback, isListener) {\n // The data structure is a map<channel, subscription[]>, where each subscription\n // holds the callback to be called and its scope.\n\n var delegate = _resolveScopedCallback(scope, callback);\n _cometd._debug('Adding', isListener ? 'listener' : 'subscription', 'on', channel, 'with scope', delegate.scope, 'and callback', delegate.method);\n\n var id = ++_listenerId;\n var subscription = {\n id: id,\n channel: channel,\n scope: delegate.scope,\n callback: delegate.method,\n listener: isListener\n };\n\n var subscriptions = _listeners[channel];\n if (!subscriptions) {\n subscriptions = {};\n _listeners[channel] = subscriptions;\n }\n\n subscriptions[id] = subscription;\n\n _cometd._debug('Added', isListener ? 'listener' : 'subscription', subscription);\n\n return subscription;\n }\n\n //\n // PUBLIC API\n //\n\n /**\n * Registers the given transport under the given transport type.\n * The optional index parameter specifies the \"priority\" at which the\n * transport is registered (where 0 is the max priority).\n * If a transport with the same type is already registered, this function\n * does nothing and returns false.\n * @param type the transport type\n * @param transport the transport object\n * @param index the index at which this transport is to be registered\n * @return true if the transport has been registered, false otherwise\n * @see #unregisterTransport(type)\n */\n this.registerTransport = function(type, transport, index) {\n var result = _transports.add(type, transport, index);\n if (result) {\n this._debug('Registered transport', type);\n\n if (_isFunction(transport.registered)) {\n transport.registered(type, this);\n }\n }\n return result;\n };\n\n /**\n * Unregisters the transport with the given transport type.\n * @param type the transport type to unregister\n * @return the transport that has been unregistered,\n * or null if no transport was previously registered under the given transport type\n */\n this.unregisterTransport = function(type) {\n var transport = _transports.remove(type);\n if (transport !== null) {\n this._debug('Unregistered transport', type);\n\n if (_isFunction(transport.unregistered)) {\n transport.unregistered();\n }\n }\n return transport;\n };\n\n this.unregisterTransports = function() {\n _transports.clear();\n };\n\n /**\n * @return an array of all registered transport types\n */\n this.getTransportTypes = function() {\n return _transports.getTransportTypes();\n };\n\n this.findTransport = function(name) {\n return _transports.find(name);\n };\n\n /**\n * @returns the TransportRegistry object\n */\n this.getTransportRegistry = function() {\n return _transports;\n };\n\n /**\n * Configures the initial Bayeux communication with the Bayeux server.\n * Configuration is passed via an object that must contain a mandatory field <code>url</code>\n * of type string containing the URL of the Bayeux server.\n * @param configuration the configuration object\n */\n this.configure = function(configuration) {\n _configure.call(this, configuration);\n };\n\n /**\n * Configures and establishes the Bayeux communication with the Bayeux server\n * via a handshake and a subsequent connect.\n * @param configuration the configuration object\n * @param handshakeProps an object to be merged with the handshake message\n * @see #configure(configuration)\n * @see #handshake(handshakeProps)\n */\n this.init = function(configuration, handshakeProps) {\n this.configure(configuration);\n this.handshake(handshakeProps);\n };\n\n /**\n * Establishes the Bayeux communication with the Bayeux server\n * via a handshake and a subsequent connect.\n * @param handshakeProps an object to be merged with the handshake message\n * @param handshakeCallback a function to be invoked when the handshake is acknowledged\n */\n this.handshake = function(handshakeProps, handshakeCallback) {\n if (_status !== 'disconnected') {\n throw 'Illegal state: handshaken';\n }\n _handshake(handshakeProps, handshakeCallback);\n };\n\n /**\n * Disconnects from the Bayeux server.\n * @param disconnectProps an object to be merged with the disconnect message\n * @param disconnectCallback a function to be invoked when the disconnect is acknowledged\n */\n this.disconnect = function(disconnectProps, disconnectCallback) {\n if (_isDisconnected()) {\n return;\n }\n\n if (_isFunction(disconnectProps)) {\n disconnectCallback = disconnectProps;\n disconnectProps = undefined;\n }\n\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: '/meta/disconnect'\n };\n // Do not allow the user to override important fields.\n var message = this._mixin(false, {}, disconnectProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, disconnectCallback);\n\n _setStatus('disconnecting');\n _send([message], false, 'disconnect');\n };\n\n /**\n * Marks the start of a batch of application messages to be sent to the server\n * in a single request, obtaining a single response containing (possibly) many\n * application reply messages.\n * Messages are held in a queue and not sent until {@link #endBatch()} is called.\n * If startBatch() is called multiple times, then an equal number of endBatch()\n * calls must be made to close and send the batch of messages.\n * @see #endBatch()\n */\n this.startBatch = function() {\n _startBatch();\n };\n\n /**\n * Marks the end of a batch of application messages to be sent to the server\n * in a single request.\n * @see #startBatch()\n */\n this.endBatch = function() {\n _endBatch();\n };\n\n /**\n * Executes the given callback in the given scope, surrounded by a {@link #startBatch()}\n * and {@link #endBatch()} calls.\n * @param scope the scope of the callback, may be omitted\n * @param callback the callback to be executed within {@link #startBatch()} and {@link #endBatch()} calls\n */\n this.batch = function(scope, callback) {\n var delegate = _resolveScopedCallback(scope, callback);\n this.startBatch();\n try {\n delegate.method.call(delegate.scope);\n this.endBatch();\n } catch (x) {\n this._info('Exception during execution of batch', x);\n this.endBatch();\n throw x;\n }\n };\n\n /**\n * Adds a listener for bayeux messages, performing the given callback in the given scope\n * when a message for the given channel arrives.\n * @param channel the channel the listener is interested to\n * @param scope the scope of the callback, may be omitted\n * @param callback the callback to call when a message is sent to the channel\n * @returns the subscription handle to be passed to {@link #removeListener(object)}\n * @see #removeListener(subscription)\n */\n this.addListener = function(channel, scope, callback) {\n if (arguments.length < 2) {\n throw 'Illegal arguments number: required 2, got ' + arguments.length;\n }\n if (!_isString(channel)) {\n throw 'Illegal argument type: channel must be a string';\n }\n\n return _addListener(channel, scope, callback, true);\n };\n\n /**\n * Removes the subscription obtained with a call to {@link #addListener(string, object, function)}.\n * @param subscription the subscription to unsubscribe.\n * @see #addListener(channel, scope, callback)\n */\n this.removeListener = function(subscription) {\n // Beware of subscription.id == 0, which is falsy => cannot use !subscription.id\n if (!subscription || !subscription.channel || !(\"id\" in subscription)) {\n throw 'Invalid argument: expected subscription, not ' + subscription;\n }\n\n _removeListener(subscription);\n };\n\n /**\n * Removes all listeners registered with {@link #addListener(channel, scope, callback)} or\n * {@link #subscribe(channel, scope, callback)}.\n */\n this.clearListeners = function() {\n _listeners = {};\n };\n\n /**\n * Subscribes to the given channel, performing the given callback in the given scope\n * when a message for the channel arrives.\n * @param channel the channel to subscribe to\n * @param scope the scope of the callback, may be omitted\n * @param callback the callback to call when a message is sent to the channel\n * @param subscribeProps an object to be merged with the subscribe message\n * @param subscribeCallback a function to be invoked when the subscription is acknowledged\n * @return the subscription handle to be passed to {@link #unsubscribe(object)}\n */\n this.subscribe = function(channel, scope, callback, subscribeProps, subscribeCallback) {\n if (arguments.length < 2) {\n throw 'Illegal arguments number: required 2, got ' + arguments.length;\n }\n if (!_isString(channel)) {\n throw 'Illegal argument type: channel must be a string';\n }\n if (_isDisconnected()) {\n throw 'Illegal state: disconnected';\n }\n\n // Normalize arguments\n if (_isFunction(scope)) {\n subscribeCallback = subscribeProps;\n subscribeProps = callback;\n callback = scope;\n scope = undefined;\n }\n if (_isFunction(subscribeProps)) {\n subscribeCallback = subscribeProps;\n subscribeProps = undefined;\n }\n\n // Only send the message to the server if this client has not yet subscribed to the channel\n var send = !_hasSubscriptions(channel);\n\n var subscription = _addListener(channel, scope, callback, false);\n\n if (send) {\n // Send the subscription message after the subscription registration to avoid\n // races where the server would send a message to the subscribers, but here\n // on the client the subscription has not been added yet to the data structures\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: '/meta/subscribe',\n subscription: channel\n };\n // Do not allow the user to override important fields.\n var message = this._mixin(false, {}, subscribeProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, subscribeCallback);\n\n _queueSend(message);\n }\n\n return subscription;\n };\n\n /**\n * Unsubscribes the subscription obtained with a call to {@link #subscribe(string, object, function)}.\n * @param subscription the subscription to unsubscribe.\n * @param unsubscribeProps an object to be merged with the unsubscribe message\n * @param unsubscribeCallback a function to be invoked when the unsubscription is acknowledged\n */\n this.unsubscribe = function(subscription, unsubscribeProps, unsubscribeCallback) {\n if (arguments.length < 1) {\n throw 'Illegal arguments number: required 1, got ' + arguments.length;\n }\n if (_isDisconnected()) {\n throw 'Illegal state: disconnected';\n }\n\n if (_isFunction(unsubscribeProps)) {\n unsubscribeCallback = unsubscribeProps;\n unsubscribeProps = undefined;\n }\n\n // Remove the local listener before sending the message\n // This ensures that if the server fails, this client does not get notifications\n this.removeListener(subscription);\n\n var channel = subscription.channel;\n // Only send the message to the server if this client unsubscribes the last subscription\n if (!_hasSubscriptions(channel)) {\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: '/meta/unsubscribe',\n subscription: channel\n };\n // Do not allow the user to override important fields.\n var message = this._mixin(false, {}, unsubscribeProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, unsubscribeCallback);\n\n _queueSend(message);\n }\n };\n\n this.resubscribe = function(subscription, subscribeProps) {\n _removeSubscription(subscription);\n if (subscription) {\n return this.subscribe(subscription.channel, subscription.scope, subscription.callback, subscribeProps);\n }\n return undefined;\n };\n\n /**\n * Removes all subscriptions added via {@link #subscribe(channel, scope, callback, subscribeProps)},\n * but does not remove the listeners added via {@link addListener(channel, scope, callback)}.\n */\n this.clearSubscriptions = function() {\n _clearSubscriptions();\n };\n\n /**\n * Publishes a message on the given channel, containing the given content.\n * @param channel the channel to publish the message to\n * @param content the content of the message\n * @param publishProps an object to be merged with the publish message\n * @param publishCallback a function to be invoked when the publish is acknowledged by the server\n */\n this.publish = function(channel, content, publishProps, publishCallback) {\n if (arguments.length < 1) {\n throw 'Illegal arguments number: required 1, got ' + arguments.length;\n }\n if (!_isString(channel)) {\n throw 'Illegal argument type: channel must be a string';\n }\n if (/^\\/meta\\//.test(channel)) {\n throw 'Illegal argument: cannot publish to meta channels';\n }\n if (_isDisconnected()) {\n throw 'Illegal state: disconnected';\n }\n\n if (_isFunction(content)) {\n publishCallback = content;\n content = {};\n publishProps = undefined;\n } else if (_isFunction(publishProps)) {\n publishCallback = publishProps;\n publishProps = undefined;\n }\n\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: channel,\n data: content\n };\n // Do not allow the user to override important fields.\n var message = this._mixin(false, {}, publishProps, bayeuxMessage);\n\n // Save the callback.\n _cometd._putCallback(message.id, publishCallback);\n\n _queueSend(message);\n };\n\n /**\n * Publishes a message with binary data on the given channel.\n * The binary data chunk may be an ArrayBuffer, a DataView, a TypedArray\n * (such as Uint8Array) or a plain integer array.\n * The meta data object may contain additional application data such as\n * a file name, a mime type, etc.\n * @param channel the channel to publish the message to\n * @param data the binary data to publish\n * @param last whether the binary data chunk is the last\n * @param meta an object containing meta data associated to the binary chunk\n * @param callback a function to be invoked when the publish is acknowledged by the server\n */\n this.publishBinary = function(channel, data, last, meta, callback) {\n if (_isFunction(data)) {\n callback = data;\n data = new ArrayBuffer(0);\n last = true;\n meta = undefined;\n } else if (_isFunction(last)) {\n callback = last;\n last = true;\n meta = undefined;\n } else if (_isFunction(meta)) {\n callback = meta;\n meta = undefined;\n }\n var content = {\n meta: meta,\n data: data,\n last: last\n };\n var ext = {\n ext: {\n binary: {}\n }\n };\n this.publish(channel, content, ext, callback);\n };\n\n this.remoteCall = function(target, content, timeout, callProps, callback) {\n if (arguments.length < 1) {\n throw 'Illegal arguments number: required 1, got ' + arguments.length;\n }\n if (!_isString(target)) {\n throw 'Illegal argument type: target must be a string';\n }\n if (_isDisconnected()) {\n throw 'Illegal state: disconnected';\n }\n\n if (_isFunction(content)) {\n callback = content;\n content = {};\n timeout = _config.maxNetworkDelay;\n callProps = undefined;\n } else if (_isFunction(timeout)) {\n callback = timeout;\n timeout = _config.maxNetworkDelay;\n callProps = undefined;\n } else if (_isFunction(callProps)) {\n callback = callProps;\n callProps = undefined;\n }\n\n if (typeof timeout !== 'number') {\n throw 'Illegal argument type: timeout must be a number';\n }\n\n if (!target.match(/^\\//)) {\n target = '/' + target;\n }\n var channel = '/service' + target;\n\n var bayeuxMessage = {\n id: _nextMessageId(),\n channel: channel,\n data: content\n };\n var message = this._mixin(false, {}, callProps, bayeuxMessage);\n\n var context = {\n callback: callback\n };\n if (timeout > 0) {\n context.timeout = _cometd.setTimeout(function() {\n _cometd._debug('Timing out remote call', message, 'after', timeout, 'ms');\n _failMessage({\n id: message.id,\n error: '406::timeout',\n successful: false,\n failure: {\n message: message,\n reason: 'Remote Call Timeout'\n }\n });\n }, timeout);\n _cometd._debug('Scheduled remote call timeout', message, 'in', timeout, 'ms');\n }\n _remoteCalls[message.id] = context;\n\n _queueSend(message);\n };\n\n this.remoteCallBinary = function(target, data, last, meta, timeout, callback) {\n if (_isFunction(data)) {\n callback = data;\n data = new ArrayBuffer(0);\n last = true;\n meta = undefined;\n timeout = _config.maxNetworkDelay;\n } else if (_isFunction(last)) {\n callback = last;\n last = true;\n meta = undefined;\n timeout = _config.maxNetworkDelay;\n } else if (_isFunction(meta)) {\n callback = meta;\n meta = undefined;\n timeout = _config.maxNetworkDelay;\n } else if (_isFunction(timeout)) {\n callback = timeout;\n timeout = _config.maxNetworkDelay;\n }\n\n var content = {\n meta: meta,\n data: data,\n last: last\n };\n var ext = {\n ext: {\n binary: {}\n }\n };\n\n this.remoteCall(target, content, timeout, ext, callback);\n };\n\n /**\n * Returns a string representing the status of the bayeux communication with the Bayeux server.\n */\n this.getStatus = function() {\n return _status;\n };\n\n /**\n * Returns whether this instance has been disconnected.\n */\n this.isDisconnected = _isDisconnected;\n\n /**\n * Sets the backoff period used to increase the backoff time when retrying an unsuccessful or failed message.\n * Default value is 1 second, which means if there is a persistent failure the retries will happen\n * after 1 second, then after 2 seconds, then after 3 seconds, etc. So for example with 15 seconds of\n * elapsed time, there will be 5 retries (at 1, 3, 6, 10 and 15 seconds elapsed).\n * @param period the backoff period to set\n * @see #getBackoffIncrement()\n */\n this.setBackoffIncrement = function(period) {\n _config.backoffIncrement = period;\n };\n\n /**\n * Returns the backoff period used to increase the backoff time when retrying an unsuccessful or failed message.\n * @see #setBackoffIncrement(period)\n */\n this.getBackoffIncrement = function() {\n return _config.backoffIncrement;\n };\n\n /**\n * Returns the backoff period to wait before retrying an unsuccessful or failed message.\n */\n this.getBackoffPeriod = function() {\n return _backoff;\n };\n\n /**\n * Increases the backoff period up to the maximum value configured.\n * @returns the backoff period after increment\n * @see getBackoffIncrement\n */\n this.increaseBackoffPeriod = function() {\n return _increaseBackoff();\n };\n\n /**\n * Resets the backoff period to zero.\n */\n this.resetBackoffPeriod = function() {\n _resetBackoff();\n };\n\n /**\n * Sets the log level for console logging.\n * Valid values are the strings 'error', 'warn', 'info' and 'debug', from\n * less verbose to more verbose.\n * @param level the log level string\n */\n this.setLogLevel = function(level) {\n _config.logLevel = level;\n };\n\n /**\n * Registers an extension whose callbacks are called for every incoming message\n * (that comes from the server to this client implementation) and for every\n * outgoing message (that originates from this client implementation for the\n * server).\n * The format of the extension object is the following:\n * <pre>\n * {\n * incoming: function(message) { ... },\n * outgoing: function(message) { ... }\n * }\n * </pre>\n * Both properties are optional, but if they are present they will be called\n * respectively for each incoming message and for each outgoing message.\n * @param name the name of the extension\n * @param extension the extension to register\n * @return true if the extension was registered, false otherwise\n * @see #unregisterExtension(name)\n */\n this.registerExtension = function(name, extension) {\n if (arguments.length < 2) {\n throw 'Illegal arguments number: required 2, got ' + arguments.length;\n }\n if (!_isString(name)) {\n throw 'Illegal argument type: extension name must be a string';\n }\n\n var existing = false;\n for (var i = 0; i < _extensions.length; ++i) {\n var existingExtension = _extensions[i];\n if (existingExtension.name === name) {\n existing = true;\n break;\n }\n }\n if (!existing) {\n _extensions.push({\n name: name,\n extension: extension\n });\n this._debug('Registered extension', name);\n\n // Callback for extensions\n if (_isFunction(extension.registered)) {\n extension.registered(name, this);\n }\n\n return true;\n } else {\n this._info('Could not register extension with name', name, 'since another extension with the same name already exists');\n return false;\n }\n };\n\n /**\n * Unregister an extension previously registered with\n * {@link #registerExtension(name, extension)}.\n * @param name the name of the extension to unregister.\n * @return true if the extension was unregistered, false otherwise\n */\n this.unregisterExtension = function(name) {\n if (!_isString(name)) {\n throw 'Illegal argument type: extension name must be a string';\n }\n\n var unregistered = false;\n for (var i = 0; i < _extensions.length; ++i) {\n var extension = _extensions[i];\n if (extension.name === name) {\n _extensions.splice(i, 1);\n unregistered = true;\n this._debug('Unregistered extension', name);\n\n // Callback for extensions\n var ext = extension.extension;\n if (_isFunction(ext.unregistered)) {\n ext.unregistered();\n }\n\n break;\n }\n }\n return unregistered;\n };\n\n /**\n * Find the extension registered with the given name.\n * @param name the name of the extension to find\n * @return the extension found or null if no extension with the given name has been registered\n */\n this.getExtension = function(name) {\n for (var i = 0; i < _extensions.length; ++i) {\n var extension = _extensions[i];\n if (extension.name === name) {\n return extension.extension;\n }\n }\n return null;\n };\n\n /**\n * Returns the name assigned to this CometD object, or the string 'default'\n * if no name has been explicitly passed as parameter to the constructor.\n */\n this.getName = function() {\n return _name;\n };\n\n /**\n * Returns the clientId assigned by the Bayeux server during handshake.\n */\n this.getClientId = function() {\n return _clientId;\n };\n\n /**\n * Returns the URL of the Bayeux server.\n */\n this.getURL = function() {\n if (_transport) {\n var url = _transport.getURL();\n if (url) {\n return url;\n }\n url = _config.urls[_transport.getType()];\n if (url) {\n return url;\n }\n }\n return _config.url;\n };\n\n this.getTransport = function() {\n return _transport;\n };\n\n this.getConfiguration = function() {\n return this._mixin(true, {}, _config);\n };\n\n this.getAdvice = function() {\n return this._mixin(true, {}, _advice);\n };\n\n this.setTimeout = function(funktion, delay) {\n return _scheduler.setTimeout(function() {\n try {\n _cometd._debug('Invoking timed function', funktion);\n funktion();\n } catch (x) {\n _cometd._debug('Exception invoking timed function', funktion, x);\n }\n }, delay);\n };\n\n this.clearTimeout = function(id) {\n _scheduler.clearTimeout(id);\n };\n\n // Initialize transports.\n if (window.WebSocket) {\n this.registerTransport('websocket', new WebSocketTransport());\n }\n this.registerTransport('long-polling', new LongPollingTransport());\n this.registerTransport('callback-polling', new CallbackPollingTransport());\n };\n\n var _z85EncodeTable = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',\n 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',\n 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D',\n 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',\n 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',\n 'Y', 'Z', '.', '-', ':', '+', '=', '^', '!', '/',\n '*', '?', '&', '<', '>', '(', ')', '[', ']', '{',\n '}', '@', '%', '$', '#'\n ];\n var _z85DecodeTable = [\n 0x00, 0x44, 0x00, 0x54, 0x53, 0x52, 0x48, 0x00,\n 0x4B, 0x4C, 0x46, 0x41, 0x00, 0x3F, 0x3E, 0x45,\n 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\n 0x08, 0x09, 0x40, 0x00, 0x49, 0x42, 0x4A, 0x47,\n 0x51, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A,\n 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32,\n 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,\n 0x3B, 0x3C, 0x3D, 0x4D, 0x00, 0x4E, 0x43, 0x00,\n 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,\n 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,\n 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,\n 0x21, 0x22, 0x23, 0x4F, 0x00, 0x50, 0x00, 0x00\n ];\n var Z85 = {\n encode: function(bytes) {\n var buffer = null;\n if (bytes instanceof ArrayBuffer) {\n buffer = bytes;\n } else if (bytes.buffer instanceof ArrayBuffer) {\n buffer = bytes.buffer;\n } else if (Array.isArray(bytes)) {\n buffer = new Uint8Array(bytes).buffer;\n }\n if (buffer == null) {\n throw 'Cannot Z85 encode ' + bytes;\n }\n\n var length = buffer.byteLength;\n var remainder = length % 4;\n var padding = 4 - (remainder === 0 ? 4 : remainder);\n var view = new DataView(buffer);\n var result = '';\n var value = 0;\n for (var i = 0; i < length + padding; ++i) {\n var isPadding = i >= length;\n value = value * 256 + (isPadding ? 0 : view.getUint8(i));\n if ((i + 1) % 4 === 0) {\n var divisor = 85 * 85 * 85 * 85;\n for (var j = 5; j > 0; --j) {\n if (!isPadding || j > padding) {\n var code = Math.floor(value / divisor) % 85;\n result += _z85EncodeTable[code];\n }\n divisor /= 85;\n }\n value = 0;\n }\n }\n\n return result;\n },\n decode: function(string) {\n var remainder = string.length % 5;\n var padding = 5 - (remainder === 0 ? 5 : remainder);\n for (var p = 0; p < padding; ++p) {\n string += _z85EncodeTable[_z85EncodeTable.length - 1];\n }\n var length = string.length;\n\n var buffer = new ArrayBuffer((length * 4 / 5) - padding);\n var view = new DataView(buffer);\n var value = 0;\n var charIdx = 0;\n var byteIdx = 0;\n for (var i = 0; i < length; ++i) {\n var code = string.charCodeAt(charIdx++) - 32;\n value = value * 85 + _z85DecodeTable[code];\n if (charIdx % 5 === 0) {\n var divisor = 256 * 256 * 256;\n while (divisor >= 1) {\n if (byteIdx < view.byteLength) {\n view.setUint8(byteIdx++, Math.floor(value / divisor) % 256);\n }\n divisor /= 256;\n }\n value = 0;\n }\n }\n\n return buffer;\n }\n };\n\n return {\n CometD: CometD,\n Transport: Transport,\n RequestTransport: RequestTransport,\n LongPollingTransport: LongPollingTransport,\n CallbackPollingTransport: CallbackPollingTransport,\n WebSocketTransport: WebSocketTransport,\n Utils: Utils,\n Z85: Z85\n };\n}));\n"],"names":["this"],"mappings":"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"}