@stomp/stompjs 6.0.0-beta1 → 6.1.0
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.
- package/LICENSE +202 -0
- package/README.md +31 -31
- package/bundles/stomp.umd.js +938 -919
- package/bundles/stomp.umd.js.map +1 -1
- package/bundles/stomp.umd.min.js +1 -1
- package/bundles/stomp.umd.min.js.map +1 -1
- package/esm6/augment-websocket.d.ts +5 -0
- package/esm6/augment-websocket.js +26 -0
- package/esm6/augment-websocket.js.map +1 -0
- package/esm6/byte.js +1 -1
- package/esm6/client.d.ts +26 -8
- package/esm6/client.js +152 -77
- package/esm6/client.js.map +1 -1
- package/esm6/compatibility/compat-client.js +20 -7
- package/esm6/compatibility/compat-client.js.map +1 -1
- package/esm6/compatibility/heartbeat-info.js.map +1 -1
- package/esm6/compatibility/stomp.js +1 -1
- package/esm6/compatibility/stomp.js.map +1 -1
- package/esm6/frame-impl.js +20 -7
- package/esm6/frame-impl.js.map +1 -1
- package/esm6/parser.js +14 -8
- package/esm6/parser.js.map +1 -1
- package/esm6/stomp-config.d.ts +12 -1
- package/esm6/stomp-config.js +3 -0
- package/esm6/stomp-config.js.map +1 -1
- package/esm6/stomp-handler.d.ts +3 -1
- package/esm6/stomp-handler.js +71 -60
- package/esm6/stomp-handler.js.map +1 -1
- package/esm6/stomp-headers.js.map +1 -1
- package/esm6/types.d.ts +17 -1
- package/esm6/types.js +9 -1
- package/esm6/types.js.map +1 -1
- package/esm6/versions.js +6 -2
- package/esm6/versions.js.map +1 -1
- package/package.json +12 -6
- package/LICENSE.md +0 -22
package/bundles/stomp.umd.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("StompJs",[],t):"object"==typeof exports?exports.StompJs=t():e.StompJs=t()}("undefined"!=typeof self?self:this,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=7)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e){this.versions=e}return e.prototype.supportedVersions=function(){return this.versions.join(",")},e.prototype.protocolVersions=function(){return this.versions.map((function(e){return"v"+e.replace(".","")+".stomp"}))},e.V1_0="1.0",e.V1_1="1.1",e.V1_2="1.2",e.default=new e([e.V1_0,e.V1_1,e.V1_2]),e}();t.Versions=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.CONNECTING=0]="CONNECTING",e[e.OPEN=1]="OPEN",e[e.CLOSING=2]="CLOSING",e[e.CLOSED=3]="CLOSED"}(t.StompSocketState||(t.StompSocketState={}))},function(e,t,n){"use strict";var o=this&&this.__awaiter||function(e,t,n,o){return new(n||(n=Promise))((function(i,r){function s(e){try{a(o.next(e))}catch(e){r(e)}}function c(e){try{a(o.throw(e))}catch(e){r(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,c)}a((o=o.apply(e,t||[])).next())}))},i=this&&this.__generator||function(e,t){var n,o,i,r,s={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function c(r){return function(c){return function(r){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,o&&(i=2&r[0]?o.return:r[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,r[1])).done)return i;switch(o=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,o=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(i=s.trys,(i=i.length>0&&i[i.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){s.label=r[1];break}if(6===r[0]&&s.label<i[1]){s.label=i[1],i=r;break}if(i&&s.label<i[2]){s.label=i[2],s.ops.push(r);break}i[2]&&s.ops.pop(),s.trys.pop();continue}r=t.call(e,s)}catch(e){r=[6,e],o=0}finally{n=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,c])}}};Object.defineProperty(t,"__esModule",{value:!0});var r=n(9),s=n(1),c=n(0),a=function(){function e(e){void 0===e&&(e={}),this.stompVersions=c.Versions.default,this.reconnectDelay=5e3,this.heartbeatIncoming=1e4,this.heartbeatOutgoing=1e4,this.splitLargeFrames=!1,this.maxWebSocketChunkSize=8192,this.forceBinaryWSFrames=!1,this.appendMissingNULLonIncoming=!1,this._active=!1;var t=function(){};this.debug=t,this.beforeConnect=t,this.onConnect=t,this.onDisconnect=t,this.onUnhandledMessage=t,this.onUnhandledReceipt=t,this.onUnhandledFrame=t,this.onStompError=t,this.onWebSocketClose=t,this.onWebSocketError=t,this.logRawCommunication=!1,this.connectHeaders={},this._disconnectHeaders={},this.configure(e)}return Object.defineProperty(e.prototype,"webSocket",{get:function(){return this._webSocket},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"disconnectHeaders",{get:function(){return this._disconnectHeaders},set:function(e){this._disconnectHeaders=e,this._stompHandler&&(this._stompHandler.disconnectHeaders=this._disconnectHeaders)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"connected",{get:function(){return!!this._stompHandler&&this._stompHandler.connected},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"connectedVersion",{get:function(){return this._stompHandler?this._stompHandler.connectedVersion:void 0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"active",{get:function(){return this._active},enumerable:!0,configurable:!0}),e.prototype.configure=function(e){Object.assign(this,e)},e.prototype.activate=function(){this._active=!0,this._connect()},e.prototype._connect=function(){return o(this,void 0,void 0,(function(){var e=this;return i(this,(function(t){switch(t.label){case 0:return this.connected?(this.debug("STOMP: already connected, nothing to do"),[2]):[4,this.beforeConnect()];case 1:return t.sent(),this._active?(this.debug("Opening Web Socket..."),this._webSocket=this._createWebSocket(),this._stompHandler=new r.StompHandler(this,this._webSocket,{debug:this.debug,stompVersions:this.stompVersions,connectHeaders:this.connectHeaders,disconnectHeaders:this._disconnectHeaders,heartbeatIncoming:this.heartbeatIncoming,heartbeatOutgoing:this.heartbeatOutgoing,splitLargeFrames:this.splitLargeFrames,maxWebSocketChunkSize:this.maxWebSocketChunkSize,forceBinaryWSFrames:this.forceBinaryWSFrames,logRawCommunication:this.logRawCommunication,appendMissingNULLonIncoming:this.appendMissingNULLonIncoming,discardWebsocketOnCommFailure:this.discardWebsocketOnCommFailure,onConnect:function(t){if(!e._active)return e.debug("STOMP got connected while deactivate was issued, will disconnect now"),void e._disposeStompHandler();e.onConnect(t)},onDisconnect:function(t){e.onDisconnect(t)},onStompError:function(t){e.onStompError(t)},onWebSocketClose:function(t){e.onWebSocketClose(t),e._active&&e._schedule_reconnect()},onWebSocketError:function(t){e.onWebSocketError(t)},onUnhandledMessage:function(t){e.onUnhandledMessage(t)},onUnhandledReceipt:function(t){e.onUnhandledReceipt(t)},onUnhandledFrame:function(t){e.onUnhandledFrame(t)}}),this._stompHandler.start(),[2]):(this.debug("Client has been marked inactive, will not attempt to connect"),[2])}}))}))},e.prototype._createWebSocket=function(){var e;return(e=this.webSocketFactory?this.webSocketFactory():new WebSocket(this.brokerURL,this.stompVersions.protocolVersions())).binaryType="arraybuffer",e},e.prototype._schedule_reconnect=function(){var e=this;this.reconnectDelay>0&&(this.debug("STOMP: scheduling reconnection in "+this.reconnectDelay+"ms"),this._reconnector=setTimeout((function(){e._connect()}),this.reconnectDelay))},e.prototype.deactivate=function(){this._active=!1,this._reconnector&&clearTimeout(this._reconnector),this._disposeStompHandler()},e.prototype.forceDisconnect=function(){this._webSocket&&(this._webSocket.readyState!==s.StompSocketState.CONNECTING&&this._webSocket.readyState!==s.StompSocketState.OPEN||this._stompHandler._closeWebsocket())},e.prototype._disposeStompHandler=function(){this._stompHandler&&(this._stompHandler.dispose(),this._stompHandler=null)},e.prototype.publish=function(e){this._stompHandler.publish(e)},e.prototype.watchForReceipt=function(e,t){this._stompHandler.watchForReceipt(e,t)},e.prototype.subscribe=function(e,t,n){return void 0===n&&(n={}),this._stompHandler.subscribe(e,t,n)},e.prototype.unsubscribe=function(e,t){void 0===t&&(t={}),this._stompHandler.unsubscribe(e,t)},e.prototype.begin=function(e){return this._stompHandler.begin(e)},e.prototype.commit=function(e){this._stompHandler.commit(e)},e.prototype.abort=function(e){this._stompHandler.abort(e)},e.prototype.ack=function(e,t,n){void 0===n&&(n={}),this._stompHandler.ack(e,t,n)},e.prototype.nack=function(e,t,n){void 0===n&&(n={}),this._stompHandler.nack(e,t,n)},e}();t.Client=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BYTE={LF:"\n",NULL:"\0"}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=function(){function e(e){var t=e.command,n=e.headers,o=e.body,i=e.binaryBody,r=e.escapeHeaderValues,s=e.skipContentLengthHeader;this.command=t,this.headers=Object.assign({},n||{}),i?(this._binaryBody=i,this.isBinaryBody=!0):(this._body=o||"",this.isBinaryBody=!1),this.escapeHeaderValues=r||!1,this.skipContentLengthHeader=s||!1}return Object.defineProperty(e.prototype,"body",{get:function(){return!this._body&&this.isBinaryBody&&(this._body=(new TextDecoder).decode(this._binaryBody)),this._body},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"binaryBody",{get:function(){return this._binaryBody||this.isBinaryBody||(this._binaryBody=(new TextEncoder).encode(this._body)),this._binaryBody},enumerable:!0,configurable:!0}),e.fromRawFrame=function(t,n){for(var o={},i=function(e){return e.replace(/^\s+|\s+$/g,"")},r=0,s=t.headers.reverse();r<s.length;r++){var c=s[r],a=(c.indexOf(":"),i(c[0])),u=i(c[1]);n&&"CONNECT"!==t.command&&"CONNECTED"!==t.command&&(u=e.hdrValueUnEscape(u)),o[a]=u}return new e({command:t.command,headers:o,binaryBody:t.binaryBody,escapeHeaderValues:n})},e.prototype.toString=function(){return this.serializeCmdAndHeaders()},e.prototype.serialize=function(){var t=this.serializeCmdAndHeaders();return this.isBinaryBody?e.toUnit8Array(t,this._binaryBody).buffer:t+this._body+o.BYTE.NULL},e.prototype.serializeCmdAndHeaders=function(){var t=[this.command];this.skipContentLengthHeader&&delete this.headers["content-length"];for(var n=0,i=Object.keys(this.headers||{});n<i.length;n++){var r=i[n],s=this.headers[r];this.escapeHeaderValues&&"CONNECT"!==this.command&&"CONNECTED"!==this.command?t.push(r+":"+e.hdrValueEscape(""+s)):t.push(r+":"+s)}return(this.isBinaryBody||!this.isBodyEmpty()&&!this.skipContentLengthHeader)&&t.push("content-length:"+this.bodyLength()),t.join(o.BYTE.LF)+o.BYTE.LF+o.BYTE.LF},e.prototype.isBodyEmpty=function(){return 0===this.bodyLength()},e.prototype.bodyLength=function(){var e=this.binaryBody;return e?e.length:0},e.sizeOfUTF8=function(e){return e?(new TextEncoder).encode(e).length:0},e.toUnit8Array=function(e,t){var n=(new TextEncoder).encode(e),o=new Uint8Array([0]),i=new Uint8Array(n.length+t.length+o.length);return i.set(n),i.set(t,n.length),i.set(o,n.length+t.length),i},e.marshall=function(t){return new e(t).serialize()},e.hdrValueEscape=function(e){return e.replace(/\\/g,"\\\\").replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/:/g,"\\c")},e.hdrValueUnEscape=function(e){return e.replace(/\\r/g,"\r").replace(/\\n/g,"\n").replace(/\\c/g,":").replace(/\\\\/g,"\\")},e}();t.FrameImpl=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){this.onFrame=e,this.onIncomingPing=t,this._encoder=new TextEncoder,this._decoder=new TextDecoder,this._token=[],this._initState()}return e.prototype.parseChunk=function(e,t){var n;if(void 0===t&&(t=!1),n=e instanceof ArrayBuffer?new Uint8Array(e):this._encoder.encode(e),t&&0!==n[n.length-1]){var o=new Uint8Array(n.length+1);o.set(n,0),o[n.length]=0,n=o}for(var i=0;i<n.length;i++){var r=n[i];this._onByte(r)}},e.prototype._collectFrame=function(e){0!==e&&13!==e&&(10!==e?(this._onByte=this._collectCommand,this._reinjectByte(e)):this.onIncomingPing())},e.prototype._collectCommand=function(e){if(13!==e)return 10===e?(this._results.command=this._consumeTokenAsUTF8(),void(this._onByte=this._collectHeaders)):void this._consumeByte(e)},e.prototype._collectHeaders=function(e){13!==e&&(10!==e?(this._onByte=this._collectHeaderKey,this._reinjectByte(e)):this._setupCollectBody())},e.prototype._reinjectByte=function(e){this._onByte(e)},e.prototype._collectHeaderKey=function(e){if(58===e)return this._headerKey=this._consumeTokenAsUTF8(),void(this._onByte=this._collectHeaderValue);this._consumeByte(e)},e.prototype._collectHeaderValue=function(e){if(13!==e)return 10===e?(this._results.headers.push([this._headerKey,this._consumeTokenAsUTF8()]),this._headerKey=void 0,void(this._onByte=this._collectHeaders)):void this._consumeByte(e)},e.prototype._setupCollectBody=function(){var e=this._results.headers.filter((function(e){return"content-length"===e[0]}))[0];e?(this._bodyBytesRemaining=parseInt(e[1],10),this._onByte=this._collectBodyFixedSize):this._onByte=this._collectBodyNullTerminated},e.prototype._collectBodyNullTerminated=function(e){0!==e?this._consumeByte(e):this._retrievedBody()},e.prototype._collectBodyFixedSize=function(e){0!=this._bodyBytesRemaining--?this._consumeByte(e):this._retrievedBody()},e.prototype._retrievedBody=function(){this._results.binaryBody=this._consumeTokenAsRaw(),this.onFrame(this._results),this._initState()},e.prototype._consumeByte=function(e){this._token.push(e)},e.prototype._consumeTokenAsUTF8=function(){return this._decoder.decode(this._consumeTokenAsRaw())},e.prototype._consumeTokenAsRaw=function(){var e=new Uint8Array(this._token);return this._token=[],e},e.prototype._initState=function(){this._results={command:void 0,headers:[],binaryBody:void 0},this._token=[],this._headerKey=void 0,this._onByte=this._collectFrame},e}();t.Parser=o},function(e,t,n){"use strict";var o,i=this&&this.__extends||(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)});Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),s=n(13),c=function(e){function t(t){var n=e.call(this)||this;return n.maxWebSocketFrameSize=16384,n._heartbeatInfo=new s.HeartbeatInfo(n),n.reconnect_delay=0,n.webSocketFactory=t,n.debug=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];console.log.apply(console,e)},n}return i(t,e),t.prototype._parseConnect=function(){for(var e,t,n,o=[],i=0;i<arguments.length;i++)o[i]=arguments[i];var r={};if(o.length<2)throw new Error("Connect requires at least 2 arguments");if("function"==typeof o[1])r=o[0],t=o[1],n=o[2],e=o[3];else switch(o.length){case 6:r.login=o[0],r.passcode=o[1],t=o[2],n=o[3],e=o[4],r.host=o[5];break;default:r.login=o[0],r.passcode=o[1],t=o[2],n=o[3],e=o[4]}return[r,t,n,e]},t.prototype.connect=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var o=this._parseConnect.apply(this,t);o[0]&&(this.connectHeaders=o[0]),o[1]&&(this.onConnect=o[1]),o[2]&&(this.onStompError=o[2]),o[3]&&(this.onWebSocketClose=o[3]),e.prototype.activate.call(this)},t.prototype.disconnect=function(t,n){void 0===n&&(n={}),t&&(this.onDisconnect=t),this.disconnectHeaders=n,e.prototype.deactivate.call(this)},t.prototype.send=function(e,t,n){void 0===t&&(t={}),void 0===n&&(n="");var o=!1===(t=Object.assign({},t))["content-length"];o&&delete t["content-length"],this.publish({destination:e,headers:t,body:n,skipContentLengthHeader:o})},Object.defineProperty(t.prototype,"reconnect_delay",{set:function(e){this.reconnectDelay=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"ws",{get:function(){return this._webSocket},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return this.connectedVersion},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onreceive",{get:function(){return this.onUnhandledMessage},set:function(e){this.onUnhandledMessage=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"onreceipt",{get:function(){return this.onUnhandledReceipt},set:function(e){this.onUnhandledReceipt=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"heartbeat",{get:function(){return this._heartbeatInfo},set:function(e){this.heartbeatIncoming=e.incoming,this.heartbeatOutgoing=e.outgoing},enumerable:!0,configurable:!0}),t}(r.Client);t.CompatClient=c},function(e,t,n){e.exports=n(8)},function(e,t,n){"use strict";function o(e){for(var n in e)t.hasOwnProperty(n)||(t[n]=e[n])}Object.defineProperty(t,"__esModule",{value:!0}),o(n(2)),o(n(4)),o(n(5)),o(n(10)),o(n(11)),o(n(12)),o(n(1)),o(n(0)),o(n(6)),o(n(14))},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=n(4),r=n(5),s=n(1),c=n(0),a=function(){function e(e,t,n){var o=this;void 0===n&&(n={}),this._client=e,this._webSocket=t,this._serverFrameHandlers={CONNECTED:function(e){o.debug("connected to server "+e.headers.server),o._connected=!0,o._connectedVersion=e.headers.version,o._connectedVersion===c.Versions.V1_2&&(o._escapeHeaderValues=!0),o._setupHeartbeat(e.headers),o.onConnect(e)},MESSAGE:function(e){var t=e.headers.subscription,n=o._subscriptions[t]||o.onUnhandledMessage,i=e,r=o,s=o._connectedVersion===c.Versions.V1_2?i.headers.ack:i.headers["message-id"];i.ack=function(e){return void 0===e&&(e={}),r.ack(s,t,e)},i.nack=function(e){return void 0===e&&(e={}),r.nack(s,t,e)},n(i)},RECEIPT:function(e){var t=o._receiptWatchers[e.headers["receipt-id"]];t?(t(e),delete o._receiptWatchers[e.headers["receipt-id"]]):o.onUnhandledReceipt(e)},ERROR:function(e){o.onStompError(e)}},this._counter=0,this._subscriptions={},this._receiptWatchers={},this._partialData="",this._escapeHeaderValues=!1,this._lastServerActivityTS=Date.now(),this.configure(n)}return Object.defineProperty(e.prototype,"connectedVersion",{get:function(){return this._connectedVersion},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"connected",{get:function(){return this._connected},enumerable:!0,configurable:!0}),e.prototype.configure=function(e){Object.assign(this,e)},e.prototype.start=function(){var e=this,t=new r.Parser((function(t){var n=i.FrameImpl.fromRawFrame(t,e._escapeHeaderValues);e.logRawCommunication||e.debug("<<< "+n),(e._serverFrameHandlers[n.command]||e.onUnhandledFrame)(n)}),(function(){e.debug("<<< PONG")}));this._webSocket.onmessage=function(n){if(e.debug("Received data"),e._lastServerActivityTS=Date.now(),e.logRawCommunication){var o=n.data instanceof ArrayBuffer?(new TextDecoder).decode(n.data):n.data;e.debug("<<< "+o)}t.parseChunk(n.data,e.appendMissingNULLonIncoming)},this._onclose=function(t){e.debug("Connection closed to "+e._client.brokerURL),e.onWebSocketClose(t),e._cleanUp()},this._webSocket.onclose=this._onclose,this._webSocket.onerror=function(t){e.onWebSocketError(t)},this._webSocket.onopen=function(){var t=Object.assign({},e.connectHeaders);e.debug("Web Socket Opened..."),t["accept-version"]=e.stompVersions.supportedVersions(),t["heart-beat"]=[e.heartbeatOutgoing,e.heartbeatIncoming].join(","),e._transmit({command:"CONNECT",headers:t})}},e.prototype._setupHeartbeat=function(e){var t=this;if((e.version===c.Versions.V1_1||e.version===c.Versions.V1_2)&&e["heart-beat"]){var n=e["heart-beat"].split(",").map((function(e){return parseInt(e,10)})),i=n[0],r=n[1];if(0!==this.heartbeatOutgoing&&0!==r){var a=Math.max(this.heartbeatOutgoing,r);this.debug("send PING every "+a+"ms"),this._pinger=setInterval((function(){t._webSocket.readyState===s.StompSocketState.OPEN&&(t._webSocket.send(o.BYTE.LF),t.debug(">>> PING"))}),a)}if(0!==this.heartbeatIncoming&&0!==i){var u=Math.max(this.heartbeatIncoming,i);this.debug("check PONG every "+u+"ms"),this._ponger=setInterval((function(){var e=Date.now()-t._lastServerActivityTS;e>2*u&&(t.debug("did not receive server activity for the last "+e+"ms"),t.discardWebsocketOnCommFailure?(t.debug("Discarding websocket, the underlying socket may linger for a while"),t._discardWebsocket()):(t.debug("Issuing close on the websocket"),t._closeWebsocket()))}),u)}}},e.prototype._closeWebsocket=function(){this._webSocket.onmessage=function(){},this._webSocket.close()},e.prototype._discardWebsocket=function(){var e=this,t=function(){};this._webSocket.onerror=t,this._webSocket.onmessage=t,this._webSocket.onopen=t;var n=new Date;this._webSocket.onclose=function(t){var o=(new Date).getTime()-n.getTime();e.debug("Discarded socket closed after "+o+"ms, with code/reason: "+t.code+"/"+t.reason)},this._webSocket.close();this._onclose({code:4001,reason:"Heartbeat failure, discarding the socket",wasClean:!1})},e.prototype._transmit=function(e){var t=e.command,n=e.headers,o=e.body,r=e.binaryBody,s=e.skipContentLengthHeader,c=new i.FrameImpl({command:t,headers:n,body:o,binaryBody:r,escapeHeaderValues:this._escapeHeaderValues,skipContentLengthHeader:s}),a=c.serialize();if(this.logRawCommunication?this.debug(">>> "+a):this.debug(">>> "+c),this.forceBinaryWSFrames&&"string"==typeof a&&(a=(new TextEncoder).encode(a)),"string"==typeof a&&this.splitLargeFrames)for(var u=a;u.length>0;){var d=u.substring(0,this.maxWebSocketChunkSize);u=u.substring(this.maxWebSocketChunkSize),this._webSocket.send(d),this.debug("chunk sent = "+d.length+", remaining = "+u.length)}else this._webSocket.send(a)},e.prototype.dispose=function(){var e=this;if(this.connected)try{var t=Object.assign({},this.disconnectHeaders);t.receipt||(t.receipt="close-"+this._counter++),this.watchForReceipt(t.receipt,(function(t){e._closeWebsocket(),e._cleanUp(),e.onDisconnect(t)})),this._transmit({command:"DISCONNECT",headers:t})}catch(e){this.debug("Ignoring error during disconnect "+e)}else this._webSocket.readyState!==s.StompSocketState.CONNECTING&&this._webSocket.readyState!==s.StompSocketState.OPEN||this._closeWebsocket()},e.prototype._cleanUp=function(){this._connected=!1,this._pinger&&clearInterval(this._pinger),this._ponger&&clearInterval(this._ponger)},e.prototype.publish=function(e){var t=e.destination,n=e.headers,o=e.body,i=e.binaryBody,r=e.skipContentLengthHeader,s=Object.assign({destination:t},n);this._transmit({command:"SEND",headers:s,body:o,binaryBody:i,skipContentLengthHeader:r})},e.prototype.watchForReceipt=function(e,t){this._receiptWatchers[e]=t},e.prototype.subscribe=function(e,t,n){void 0===n&&(n={}),(n=Object.assign({},n)).id||(n.id="sub-"+this._counter++),n.destination=e,this._subscriptions[n.id]=t,this._transmit({command:"SUBSCRIBE",headers:n});var o=this;return{id:n.id,unsubscribe:function(e){return o.unsubscribe(n.id,e)}}},e.prototype.unsubscribe=function(e,t){void 0===t&&(t={}),t=Object.assign({},t),delete this._subscriptions[e],t.id=e,this._transmit({command:"UNSUBSCRIBE",headers:t})},e.prototype.begin=function(e){var t=e||"tx-"+this._counter++;this._transmit({command:"BEGIN",headers:{transaction:t}});var n=this;return{id:t,commit:function(){n.commit(t)},abort:function(){n.abort(t)}}},e.prototype.commit=function(e){this._transmit({command:"COMMIT",headers:{transaction:e}})},e.prototype.abort=function(e){this._transmit({command:"ABORT",headers:{transaction:e}})},e.prototype.ack=function(e,t,n){void 0===n&&(n={}),n=Object.assign({},n),this._connectedVersion===c.Versions.V1_2?n.id=e:n["message-id"]=e,n.subscription=t,this._transmit({command:"ACK",headers:n})},e.prototype.nack=function(e,t,n){return void 0===n&&(n={}),n=Object.assign({},n),this._connectedVersion===c.Versions.V1_2?n.id=e:n["message-id"]=e,n.subscription=t,this._transmit({command:"NACK",headers:n})},e}();t.StompHandler=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){};t.StompConfig=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){};t.StompHeaders=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){};t.StompSubscription=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e){this.client=e}return Object.defineProperty(e.prototype,"outgoing",{get:function(){return this.client.heartbeatOutgoing},set:function(e){this.client.heartbeatOutgoing=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"incoming",{get:function(){return this.client.heartbeatIncoming},set:function(e){this.client.heartbeatIncoming=e},enumerable:!0,configurable:!0}),e}();t.HeartbeatInfo=o},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),i=n(6),r=function(){function e(){}return e.client=function(t,n){null==n&&(n=o.Versions.default.protocolVersions());return new i.CompatClient((function(){return new(e.WebSocketClass||WebSocket)(t,n)}))},e.over=function(e){var t;return"function"==typeof e?t=e:(console.warn("Stomp.over did not receive a factory, auto reconnect will not work. Please see https://stomp-js.github.io/api-docs/latest/classes/Stomp.html#over"),t=function(){return e}),new i.CompatClient(t)},e.WebSocketClass=null,e}();t.Stomp=r}])}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("StompJs",[],t):"object"==typeof exports?exports.StompJs=t():e.StompJs=t()}("undefined"!=typeof self?self:this,(function(){return function(e){var t={};function s(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,s),i.l=!0,i.exports}return s.m=e,s.c=t,s.d=function(e,t,n){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(s.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)s.d(n,i,function(t){return e[t]}.bind(null,i));return n},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="",s(s.s=0)}([function(e,t,s){e.exports=s(1)},function(e,t,s){"use strict";s.r(t),s.d(t,"Client",(function(){return u})),s.d(t,"FrameImpl",(function(){return o})),s.d(t,"Parser",(function(){return r})),s.d(t,"StompConfig",(function(){return m})),s.d(t,"StompHeaders",(function(){return _})),s.d(t,"StompSubscription",(function(){return b})),s.d(t,"StompSocketState",(function(){return c})),s.d(t,"ActivationState",(function(){return a})),s.d(t,"Versions",(function(){return h})),s.d(t,"CompatClient",(function(){return p})),s.d(t,"Stomp",(function(){return y}));const n="\n",i="\0";class o{constructor(e){const{command:t,headers:s,body:n,binaryBody:i,escapeHeaderValues:o,skipContentLengthHeader:r}=e;this.command=t,this.headers=Object.assign({},s||{}),i?(this._binaryBody=i,this.isBinaryBody=!0):(this._body=n||"",this.isBinaryBody=!1),this.escapeHeaderValues=o||!1,this.skipContentLengthHeader=r||!1}get body(){return!this._body&&this.isBinaryBody&&(this._body=(new TextDecoder).decode(this._binaryBody)),this._body}get binaryBody(){return this._binaryBody||this.isBinaryBody||(this._binaryBody=(new TextEncoder).encode(this._body)),this._binaryBody}static fromRawFrame(e,t){const s={},n=e=>e.replace(/^\s+|\s+$/g,"");for(const i of e.headers.reverse()){i.indexOf(":");const r=n(i[0]);let c=n(i[1]);t&&"CONNECT"!==e.command&&"CONNECTED"!==e.command&&(c=o.hdrValueUnEscape(c)),s[r]=c}return new o({command:e.command,headers:s,binaryBody:e.binaryBody,escapeHeaderValues:t})}toString(){return this.serializeCmdAndHeaders()}serialize(){const e=this.serializeCmdAndHeaders();return this.isBinaryBody?o.toUnit8Array(e,this._binaryBody).buffer:e+this._body+i}serializeCmdAndHeaders(){const e=[this.command];this.skipContentLengthHeader&&delete this.headers["content-length"];for(const t of Object.keys(this.headers||{})){const s=this.headers[t];this.escapeHeaderValues&&"CONNECT"!==this.command&&"CONNECTED"!==this.command?e.push(`${t}:${o.hdrValueEscape(""+s)}`):e.push(`${t}:${s}`)}return(this.isBinaryBody||!this.isBodyEmpty()&&!this.skipContentLengthHeader)&&e.push("content-length:"+this.bodyLength()),e.join(n)+n+n}isBodyEmpty(){return 0===this.bodyLength()}bodyLength(){const e=this.binaryBody;return e?e.length:0}static sizeOfUTF8(e){return e?(new TextEncoder).encode(e).length:0}static toUnit8Array(e,t){const s=(new TextEncoder).encode(e),n=new Uint8Array([0]),i=new Uint8Array(s.length+t.length+n.length);return i.set(s),i.set(t,s.length),i.set(n,s.length+t.length),i}static marshall(e){return new o(e).serialize()}static hdrValueEscape(e){return e.replace(/\\/g,"\\\\").replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/:/g,"\\c")}static hdrValueUnEscape(e){return e.replace(/\\r/g,"\r").replace(/\\n/g,"\n").replace(/\\c/g,":").replace(/\\\\/g,"\\")}}class r{constructor(e,t){this.onFrame=e,this.onIncomingPing=t,this._encoder=new TextEncoder,this._decoder=new TextDecoder,this._token=[],this._initState()}parseChunk(e,t=!1){let s;if(s=e instanceof ArrayBuffer?new Uint8Array(e):this._encoder.encode(e),t&&0!==s[s.length-1]){const e=new Uint8Array(s.length+1);e.set(s,0),e[s.length]=0,s=e}for(let e=0;e<s.length;e++){const t=s[e];this._onByte(t)}}_collectFrame(e){0!==e&&13!==e&&(10!==e?(this._onByte=this._collectCommand,this._reinjectByte(e)):this.onIncomingPing())}_collectCommand(e){if(13!==e)return 10===e?(this._results.command=this._consumeTokenAsUTF8(),void(this._onByte=this._collectHeaders)):void this._consumeByte(e)}_collectHeaders(e){13!==e&&(10!==e?(this._onByte=this._collectHeaderKey,this._reinjectByte(e)):this._setupCollectBody())}_reinjectByte(e){this._onByte(e)}_collectHeaderKey(e){if(58===e)return this._headerKey=this._consumeTokenAsUTF8(),void(this._onByte=this._collectHeaderValue);this._consumeByte(e)}_collectHeaderValue(e){if(13!==e)return 10===e?(this._results.headers.push([this._headerKey,this._consumeTokenAsUTF8()]),this._headerKey=void 0,void(this._onByte=this._collectHeaders)):void this._consumeByte(e)}_setupCollectBody(){const e=this._results.headers.filter(e=>"content-length"===e[0])[0];e?(this._bodyBytesRemaining=parseInt(e[1],10),this._onByte=this._collectBodyFixedSize):this._onByte=this._collectBodyNullTerminated}_collectBodyNullTerminated(e){0!==e?this._consumeByte(e):this._retrievedBody()}_collectBodyFixedSize(e){0!=this._bodyBytesRemaining--?this._consumeByte(e):this._retrievedBody()}_retrievedBody(){this._results.binaryBody=this._consumeTokenAsRaw(),this.onFrame(this._results),this._initState()}_consumeByte(e){this._token.push(e)}_consumeTokenAsUTF8(){return this._decoder.decode(this._consumeTokenAsRaw())}_consumeTokenAsRaw(){const e=new Uint8Array(this._token);return this._token=[],e}_initState(){this._results={command:void 0,headers:[],binaryBody:void 0},this._token=[],this._headerKey=void 0,this._onByte=this._collectFrame}}var c,a;!function(e){e[e.CONNECTING=0]="CONNECTING",e[e.OPEN=1]="OPEN",e[e.CLOSING=2]="CLOSING",e[e.CLOSED=3]="CLOSED"}(c||(c={})),function(e){e[e.ACTIVE=0]="ACTIVE",e[e.DEACTIVATING=1]="DEACTIVATING",e[e.INACTIVE=2]="INACTIVE"}(a||(a={}));class h{constructor(e){this.versions=e}supportedVersions(){return this.versions.join(",")}protocolVersions(){return this.versions.map(e=>`v${e.replace(".","")}.stomp`)}}h.V1_0="1.0",h.V1_1="1.1",h.V1_2="1.2",h.default=new h([h.V1_0,h.V1_1,h.V1_2]);class d{constructor(e,t,s={}){this._client=e,this._webSocket=t,this._serverFrameHandlers={CONNECTED:e=>{this.debug("connected to server "+e.headers.server),this._connected=!0,this._connectedVersion=e.headers.version,this._connectedVersion===h.V1_2&&(this._escapeHeaderValues=!0),this._setupHeartbeat(e.headers),this.onConnect(e)},MESSAGE:e=>{const t=e.headers.subscription,s=this._subscriptions[t]||this.onUnhandledMessage,n=e,i=this,o=this._connectedVersion===h.V1_2?n.headers.ack:n.headers["message-id"];n.ack=(e={})=>i.ack(o,t,e),n.nack=(e={})=>i.nack(o,t,e),s(n)},RECEIPT:e=>{const t=this._receiptWatchers[e.headers["receipt-id"]];t?(t(e),delete this._receiptWatchers[e.headers["receipt-id"]]):this.onUnhandledReceipt(e)},ERROR:e=>{this.onStompError(e)}},this._counter=0,this._subscriptions={},this._receiptWatchers={},this._partialData="",this._escapeHeaderValues=!1,this._lastServerActivityTS=Date.now(),this.configure(s)}get connectedVersion(){return this._connectedVersion}get connected(){return this._connected}configure(e){Object.assign(this,e)}start(){const e=new r(e=>{const t=o.fromRawFrame(e,this._escapeHeaderValues);this.logRawCommunication||this.debug("<<< "+t);(this._serverFrameHandlers[t.command]||this.onUnhandledFrame)(t)},()=>{this.debug("<<< PONG")});this._webSocket.onmessage=t=>{if(this.debug("Received data"),this._lastServerActivityTS=Date.now(),this.logRawCommunication){const e=t.data instanceof ArrayBuffer?(new TextDecoder).decode(t.data):t.data;this.debug("<<< "+e)}e.parseChunk(t.data,this.appendMissingNULLonIncoming)},this._onclose=e=>{this.debug("Connection closed to "+this._client.brokerURL),this._cleanUp(),this.onWebSocketClose(e)},this._webSocket.onclose=this._onclose,this._webSocket.onerror=e=>{this.onWebSocketError(e)},this._webSocket.onopen=()=>{const e=Object.assign({},this.connectHeaders);this.debug("Web Socket Opened..."),e["accept-version"]=this.stompVersions.supportedVersions(),e["heart-beat"]=[this.heartbeatOutgoing,this.heartbeatIncoming].join(","),this._transmit({command:"CONNECT",headers:e})}}_setupHeartbeat(e){if(e.version!==h.V1_1&&e.version!==h.V1_2)return;if(!e["heart-beat"])return;const[t,s]=e["heart-beat"].split(",").map(e=>parseInt(e,10));if(0!==this.heartbeatOutgoing&&0!==s){const e=Math.max(this.heartbeatOutgoing,s);this.debug(`send PING every ${e}ms`),this._pinger=setInterval(()=>{this._webSocket.readyState===c.OPEN&&(this._webSocket.send(n),this.debug(">>> PING"))},e)}if(0!==this.heartbeatIncoming&&0!==t){const e=Math.max(this.heartbeatIncoming,t);this.debug(`check PONG every ${e}ms`),this._ponger=setInterval(()=>{const t=Date.now()-this._lastServerActivityTS;t>2*e&&(this.debug(`did not receive server activity for the last ${t}ms`),this._closeOrDiscardWebsocket())},e)}}_closeOrDiscardWebsocket(){this.discardWebsocketOnCommFailure?(this.debug("Discarding websocket, the underlying socket may linger for a while"),this._discardWebsocket()):(this.debug("Issuing close on the websocket"),this._closeWebsocket())}forceDisconnect(){this._webSocket&&(this._webSocket.readyState!==c.CONNECTING&&this._webSocket.readyState!==c.OPEN||this._closeOrDiscardWebsocket())}_closeWebsocket(){this._webSocket.onmessage=()=>{},this._webSocket.close()}_discardWebsocket(){var e,t;this._webSocket.terminate||(e=this._webSocket,t=e=>this.debug(e),e.terminate=function(){const e=()=>{};this.onerror=e,this.onmessage=e,this.onopen=e;const s=new Date,n=this.onclose;this.onclose=e=>{const n=(new Date).getTime()-s.getTime();t(`Discarded socket closed after ${n}ms, with code/reason: ${e.code}/${e.reason}`)},this.close(),n.call(this,{code:4001,reason:"Heartbeat failure, discarding the socket",wasClean:!1})}),this._webSocket.terminate()}_transmit(e){const{command:t,headers:s,body:n,binaryBody:i,skipContentLengthHeader:r}=e,c=new o({command:t,headers:s,body:n,binaryBody:i,escapeHeaderValues:this._escapeHeaderValues,skipContentLengthHeader:r});let a=c.serialize();if(this.logRawCommunication?this.debug(">>> "+a):this.debug(">>> "+c),this.forceBinaryWSFrames&&"string"==typeof a&&(a=(new TextEncoder).encode(a)),"string"==typeof a&&this.splitLargeFrames){let e=a;for(;e.length>0;){const t=e.substring(0,this.maxWebSocketChunkSize);e=e.substring(this.maxWebSocketChunkSize),this._webSocket.send(t),this.debug(`chunk sent = ${t.length}, remaining = ${e.length}`)}}else this._webSocket.send(a)}dispose(){if(this.connected)try{const e=Object.assign({},this.disconnectHeaders);e.receipt||(e.receipt="close-"+this._counter++),this.watchForReceipt(e.receipt,e=>{this._closeWebsocket(),this._cleanUp(),this.onDisconnect(e)}),this._transmit({command:"DISCONNECT",headers:e})}catch(e){this.debug("Ignoring error during disconnect "+e)}else this._webSocket.readyState!==c.CONNECTING&&this._webSocket.readyState!==c.OPEN||this._closeWebsocket()}_cleanUp(){this._connected=!1,this._pinger&&clearInterval(this._pinger),this._ponger&&clearInterval(this._ponger)}publish(e){const{destination:t,headers:s,body:n,binaryBody:i,skipContentLengthHeader:o}=e,r=Object.assign({destination:t},s);this._transmit({command:"SEND",headers:r,body:n,binaryBody:i,skipContentLengthHeader:o})}watchForReceipt(e,t){this._receiptWatchers[e]=t}subscribe(e,t,s={}){(s=Object.assign({},s)).id||(s.id="sub-"+this._counter++),s.destination=e,this._subscriptions[s.id]=t,this._transmit({command:"SUBSCRIBE",headers:s});const n=this;return{id:s.id,unsubscribe:e=>n.unsubscribe(s.id,e)}}unsubscribe(e,t={}){t=Object.assign({},t),delete this._subscriptions[e],t.id=e,this._transmit({command:"UNSUBSCRIBE",headers:t})}begin(e){const t=e||"tx-"+this._counter++;this._transmit({command:"BEGIN",headers:{transaction:t}});const s=this;return{id:t,commit(){s.commit(t)},abort(){s.abort(t)}}}commit(e){this._transmit({command:"COMMIT",headers:{transaction:e}})}abort(e){this._transmit({command:"ABORT",headers:{transaction:e}})}ack(e,t,s={}){s=Object.assign({},s),this._connectedVersion===h.V1_2?s.id=e:s["message-id"]=e,s.subscription=t,this._transmit({command:"ACK",headers:s})}nack(e,t,s={}){return s=Object.assign({},s),this._connectedVersion===h.V1_2?s.id=e:s["message-id"]=e,s.subscription=t,this._transmit({command:"NACK",headers:s})}}var l=function(e,t,s,n){return new(s||(s=Promise))((function(i,o){function r(e){try{a(n.next(e))}catch(e){o(e)}}function c(e){try{a(n.throw(e))}catch(e){o(e)}}function a(e){var t;e.done?i(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(r,c)}a((n=n.apply(e,t||[])).next())}))};class u{constructor(e={}){this.stompVersions=h.default,this.connectionTimeout=0,this.reconnectDelay=5e3,this.heartbeatIncoming=1e4,this.heartbeatOutgoing=1e4,this.splitLargeFrames=!1,this.maxWebSocketChunkSize=8192,this.forceBinaryWSFrames=!1,this.appendMissingNULLonIncoming=!1,this.state=a.INACTIVE;const t=()=>{};this.debug=t,this.beforeConnect=t,this.onConnect=t,this.onDisconnect=t,this.onUnhandledMessage=t,this.onUnhandledReceipt=t,this.onUnhandledFrame=t,this.onStompError=t,this.onWebSocketClose=t,this.onWebSocketError=t,this.logRawCommunication=!1,this.onChangeState=t,this.connectHeaders={},this._disconnectHeaders={},this.configure(e)}get webSocket(){return this._stompHandler?this._stompHandler._webSocket:void 0}get disconnectHeaders(){return this._disconnectHeaders}set disconnectHeaders(e){this._disconnectHeaders=e,this._stompHandler&&(this._stompHandler.disconnectHeaders=this._disconnectHeaders)}get connected(){return!!this._stompHandler&&this._stompHandler.connected}get connectedVersion(){return this._stompHandler?this._stompHandler.connectedVersion:void 0}get active(){return this.state===a.ACTIVE}_changeState(e){this.state=e,this.onChangeState(e)}configure(e){Object.assign(this,e)}activate(){if(this.state===a.DEACTIVATING)throw this.debug("Still DEACTIVATING, please await call to deactivate before trying to re-activate"),new Error("Still DEACTIVATING, can not activate now");this.active?this.debug("Already ACTIVE, ignoring request to activate"):(this._changeState(a.ACTIVE),this._connect())}_connect(){return l(this,void 0,void 0,(function*(){if(this.connected)return void this.debug("STOMP: already connected, nothing to do");if(yield this.beforeConnect(),!this.active)return void this.debug("Client has been marked inactive, will not attempt to connect");this.connectionTimeout>0&&(this._connectionWatcher=setTimeout(()=>{this.debug(`Connection not established in ${this.connectionTimeout}ms, closing socket`),this.forceDisconnect()},this.connectionTimeout)),this.debug("Opening Web Socket...");const e=this._createWebSocket();this._stompHandler=new d(this,e,{debug:this.debug,stompVersions:this.stompVersions,connectHeaders:this.connectHeaders,disconnectHeaders:this._disconnectHeaders,heartbeatIncoming:this.heartbeatIncoming,heartbeatOutgoing:this.heartbeatOutgoing,splitLargeFrames:this.splitLargeFrames,maxWebSocketChunkSize:this.maxWebSocketChunkSize,forceBinaryWSFrames:this.forceBinaryWSFrames,logRawCommunication:this.logRawCommunication,appendMissingNULLonIncoming:this.appendMissingNULLonIncoming,discardWebsocketOnCommFailure:this.discardWebsocketOnCommFailure,onConnect:e=>{if(this._connectionWatcher&&(clearTimeout(this._connectionWatcher),this._connectionWatcher=void 0),!this.active)return this.debug("STOMP got connected while deactivate was issued, will disconnect now"),void this._disposeStompHandler();this.onConnect(e)},onDisconnect:e=>{this.onDisconnect(e)},onStompError:e=>{this.onStompError(e)},onWebSocketClose:e=>{this._stompHandler=void 0,this.state===a.DEACTIVATING&&(this._resolveSocketClose(),this._resolveSocketClose=void 0,this._changeState(a.INACTIVE)),this.onWebSocketClose(e),this.active&&this._schedule_reconnect()},onWebSocketError:e=>{this.onWebSocketError(e)},onUnhandledMessage:e=>{this.onUnhandledMessage(e)},onUnhandledReceipt:e=>{this.onUnhandledReceipt(e)},onUnhandledFrame:e=>{this.onUnhandledFrame(e)}}),this._stompHandler.start()}))}_createWebSocket(){let e;return e=this.webSocketFactory?this.webSocketFactory():new WebSocket(this.brokerURL,this.stompVersions.protocolVersions()),e.binaryType="arraybuffer",e}_schedule_reconnect(){this.reconnectDelay>0&&(this.debug(`STOMP: scheduling reconnection in ${this.reconnectDelay}ms`),this._reconnector=setTimeout(()=>{this._connect()},this.reconnectDelay))}deactivate(){return l(this,void 0,void 0,(function*(){let e;return this.state!==a.ACTIVE?(this.debug(`Already ${a[this.state]}, ignoring call to deactivate`),Promise.resolve()):(this._changeState(a.DEACTIVATING),this._reconnector&&clearTimeout(this._reconnector),this._stompHandler&&this.webSocket.readyState!==c.CLOSED?(e=new Promise((e,t)=>{this._resolveSocketClose=e}),this._disposeStompHandler(),e):(this._changeState(a.INACTIVE),Promise.resolve()))}))}forceDisconnect(){this._stompHandler&&this._stompHandler.forceDisconnect()}_disposeStompHandler(){this._stompHandler&&(this._stompHandler.dispose(),this._stompHandler=null)}publish(e){this._stompHandler.publish(e)}watchForReceipt(e,t){this._stompHandler.watchForReceipt(e,t)}subscribe(e,t,s={}){return this._stompHandler.subscribe(e,t,s)}unsubscribe(e,t={}){this._stompHandler.unsubscribe(e,t)}begin(e){return this._stompHandler.begin(e)}commit(e){this._stompHandler.commit(e)}abort(e){this._stompHandler.abort(e)}ack(e,t,s={}){this._stompHandler.ack(e,t,s)}nack(e,t,s={}){this._stompHandler.nack(e,t,s)}}class m{}class _{}class b{}class g{constructor(e){this.client=e}get outgoing(){return this.client.heartbeatOutgoing}set outgoing(e){this.client.heartbeatOutgoing=e}get incoming(){return this.client.heartbeatIncoming}set incoming(e){this.client.heartbeatIncoming=e}}class p extends u{constructor(e){super(),this.maxWebSocketFrameSize=16384,this._heartbeatInfo=new g(this),this.reconnect_delay=0,this.webSocketFactory=e,this.debug=(...e)=>{console.log(...e)}}_parseConnect(...e){let t,s,n,i={};if(e.length<2)throw new Error("Connect requires at least 2 arguments");if("function"==typeof e[1])[i,s,n,t]=e;else switch(e.length){case 6:[i.login,i.passcode,s,n,t,i.host]=e;break;default:[i.login,i.passcode,s,n,t]=e}return[i,s,n,t]}connect(...e){const t=this._parseConnect(...e);t[0]&&(this.connectHeaders=t[0]),t[1]&&(this.onConnect=t[1]),t[2]&&(this.onStompError=t[2]),t[3]&&(this.onWebSocketClose=t[3]),super.activate()}disconnect(e,t={}){e&&(this.onDisconnect=e),this.disconnectHeaders=t,super.deactivate()}send(e,t={},s=""){const n=!1===(t=Object.assign({},t))["content-length"];n&&delete t["content-length"],this.publish({destination:e,headers:t,body:s,skipContentLengthHeader:n})}set reconnect_delay(e){this.reconnectDelay=e}get ws(){return this.webSocket}get version(){return this.connectedVersion}get onreceive(){return this.onUnhandledMessage}set onreceive(e){this.onUnhandledMessage=e}get onreceipt(){return this.onUnhandledReceipt}set onreceipt(e){this.onUnhandledReceipt=e}get heartbeat(){return this._heartbeatInfo}set heartbeat(e){this.heartbeatIncoming=e.incoming,this.heartbeatOutgoing=e.outgoing}}class y{static client(e,t){null==t&&(t=h.default.protocolVersions());return new p(()=>new(y.WebSocketClass||WebSocket)(e,t))}static over(e){let t;return"function"==typeof e?t=e:(console.warn("Stomp.over did not receive a factory, auto reconnect will not work. Please see https://stomp-js.github.io/api-docs/latest/classes/Stomp.html#over"),t=()=>e),new p(t)}}y.WebSocketClass=null}])}));
|
|
2
2
|
//# sourceMappingURL=stomp.umd.min.js.map
|