- Fix: race condition. When multiple activates and deactivates were called without awaiting, there were more than one broker connections created.
- Allow
activate
to be called withing awaiting thedeactivate
.
- Move TCPWrapper to an external repo.
This eliminates dependency on NodeJS
net
module. - Cleanup IStompSocket interface.
- Update dependencies.
- Update the types for frame callbacks.
- Documentation updates.
- Updated dependencies.
- Concept of TCPWrapper. See #500.
- Refactor GitHub workflows.
- Use and export
nodenext
modules. - Switch to
rollup
fromwebpack
.
- Use latest dependencies and Node.
- Upgrade Typescript to 4.8 — likely to lose backward compatibility.
- Refresh CI setup, discontinue Travis.
- Declare the minified version to be the default entry point.
- Fixes Ordering of protocol versions in
Sec-Websocket-Protocol
. See #373 - Use
strictNullChecks
typescript flag. Should fix #445. - Update test infrastructure and simplify test cases.
- Introduce a build-system for test helpers.
- Update the package to export JavaScript modules.
- Refactor
client.deactivate
introduce concept offorce
. See #461. - Tolerate exceptions thrown by frame handlers. Fixes #481.
- One more attempt to fix #366, include sourcemap and source into the npm bundle.
- Bug fix in connectionTimeout. Thanks to Sailai. See #368.
- Exlude source map files from npm package, See #366
- Disable connectionTimeout by default. Bypasses rx-stomp#277 and ng2-stompjs#218.
- Switch to
es2015
output target. Resolves #288. - Use Node 14 for few of the CI tests.
- Make
Client#deactivate
async. Removes potential race cases. - New configuration option
connectionTimeout
. The client will retry to connect if the connection is not established beforeconnectionTimeout
. See #165. - Remove dom lib dependency for usage with NodeJS/Typescript. See #224.
- Drop ES5 module output, target ES2017 instead of ES6 for modules.
- Concept of
discardWebsocketOnCommFailure
. See: #247. - Test cases pass with RabbitMQ 3.8.8. See: #280.
- Refactor Travis setup.
- Use Node 10 & 12 at Travis.
- Start using RabbitMQ 3.8.8 at Travis.
- Configure Github actions - test Safari and Edge on OSX, test Firefox and Chrome on Linux.
- Improve test cases for ack/nack.
- Defensively ignore messages before closing underlying web socket. Attempt to fix #213.
- Allow server to not send heart-beat header with CONNECTED frame. Fixes #188.
- Some constants were used through
WebSocket
class, which failed in NodeJS. Constants locally created to remove dependency. Fixes #119 - Warn if a plain socket (instead of a factory) is passed to
Stomp.over
.
- Test cases for appendMissingNULLonIncoming.
- Proper fix for #89. Thanks Dimitar Georgiev for PR #104
- Concept of appendMissingNULLonIncoming, workaround for #89.
- Promoting 5.2.0-beta.1 as 5.2.0.
- Send ping only if WebSocket is connected.
- Concept of splitLargeFrames flag. Working towards ng2-stompjs#120
- Concept of forceBinaryWSFrames.
- Promoting 5.1.0-beta.1 as 5.1.0.
- See issues marked for v5.1.0.
- Using dependbot to keep dependencies up to date.
- Concept of onWebSocketError, fixes #21.
- Support for Asynchronous beforeConnect. Fixes #14.
- Travis now checks out rx-stomp & ng2-stompjs and runs tests in those against this version of the library. To avoid issues like ng2-stompjs-angular7/issues/2.
- Some entities which should have been exported as Interfaces were exported as Classes. This might cause type mis-match issues if any of the private members change in any of the implementation. Concept of IFrame, IMessage, ITransaction interfaces introduced. Fixes #25.
- Updated Webpack config as per webpack/issues/6525#issuecomment-417580843 to resolve #26.
- Dependencies updated as per dependbot.
- Ability to log raw communication with broker. Fixes: #29.
- Emergency release - added
publishParams
back. Should fix ng2-stompjs-angular7/issues/2
- Configured
tslint
.src
istslint
clean. - Update of disconnectHeaders take effect from subsequent disconnect. Fixes #27.
- This library does not alter passed connect and disconnect header objects any longer.
- Same as 5.0.0-beta.5
- Any function must not change
headers
received as parameter, should fix #11
- Change Uint8Array forEach to regular access using [], should fix #12
- Allowed STOMP versions is now configurable
- renamed
version
-->connectedVersion
- for large message tests, make size configurable
- added
forceDisconnect
- deprecate maxWebSocketFrameSize
- new API for binary messages
- beforeConnect callback
- Shift to Typescript, Jasmine, Karma, Webpack and compodoc
- 3 variants of complied files - ES5, ES6 and UMD
- Convert all callbacks to get/set options
- Rationalized parameters for constructor, connect, disconnect and send. To support older semantics in legacy mode, renamed APIs (see Upgrade guide for details).
- Brand new evented, streaming, rec descent parser - 100% faithful protocol implementation.
- Binary payload support.
- Support for large frames.
- Upgrade guides.
- Ignore - incomplete release
- GWT Compatibility, fixes #38
- Add to Bower, fixes #26
- Several documentation cleanup, fixes #27
- Updated typescript definitions, Thanks Jimi Charalampidis. See: #33
- I need to be more disciplined. Caught up on ChangeLog updates :)
- Dockerfile for RabbitMQ. Thanks Dillon Sellars. See: #22
- Add closeEventCallback to expose the websocket CloseEvent. Thanks Dillon Sellars. See: #23
- Cleanup disconnect code, fixes #21
- Fixes #20
- NodeJS has been upgraded to first class citizen. Dropped legacy support.
- Major version change as this version is not backward compatible.
- Header value escaping as per STOMP 1.2 standard.
- Updated tests to QUint latest version. Now using same set of tests for NodeJS environment.
- Pruned files and folders no longer needed.
- Updated dependencies.
- Updated build scripts.
- Refactored entire documentation.
- Enabled Travis CI (it runs all test cases using NodeJS).
- Documentation is hosted at GitHub pages.
- Updated TypeScript type definitions.
- Added typescript definitions. Thanks Jimi Charalampidis (https://github.com/jimic)
- Published on npmjs.com.
- Support for auto reconnect
- Minor documentation changes
- deletion of durable subscriptions
- STOMP 1.2 ack/nack headers
- graceful shutdown
-
the
unsubscribe()
method returned bysubscribe()
now takes an optionalheaders
argument which can be used to pass headers likedurable:true
andauto-delete:false
required by RabbitMQ to delete durable subscriptions -
for STOMP 1.2,
ack()
andnack()
methods send anid
header rather than amessage-id
header to match the incoming MESSAGE frame. -
although the
disconnectCallback
is still called immediately after transmitting a DISCONNECT frame, the websocket is not closed by the client until a RECEIPT is received. Note that due to server-side behaviour with respect to connection lingering the RECEIPT may never be received and the socket will be closed by the server.
- heart-beat
- nack
- content-length
-
the
errorCallback
passed to theconnect()
method is no longer called when the client is properly disconnected by callingdisconnect()
. -
ack() method takes 3 parameters:
messageID
&subscription
are MANDATORY.headers
is OPTIONAL
-
the
client
object has aheartbeat
field which can be used to configure heart-beating by changing itsincoming
andoutgoing
integer fields (default value for both is 10000ms):client.heartbeat.outgoing = 20000 // client will send heartbeats every 20000ms client.heartbeat.incoming = 0 // client does not want to receive heartbeats // from the server
In addition to the regular stomp.js
file, the library is also available in a minified version stomp.min.js
The source is now documented :)