Skip to content

Releases: deepstreamIO/deepstream.io-client-js

v2.0.0

18 Nov 17:26
Compare
Choose a tag to compare

[2.0.0] - 2016-11-18

Features

  • Added support for the deepstream presence API, enabling querying and
    subscribing to who is online within a cluster. For example:

    ds.presence.getAll((users) => {
      users.forEach((username) => {
        console.log(`${username} is online`)
      })
    })
    
    ds.presence.subscribe((username, loggedIn) => {
      if (loggedIn) {
        console.log(`${username} has logged in`)
      } else {
        console.log(`${username} has logged out`)
      }
    })

Enhancements

  • Added heartbeats over WebSocket connection
  • Presence has been added to query and subscribe to who is online with the cluster
  • E2E tests refactored

Breaking Changes

  • Supports deepstream.io v2.0.0+ only
  • Changed format of RPC request ACK messages to be more consistent with the rest of the specs
    #408
  • We now depend only on browser/node.js WebSockets, removing support for TCP and engine.io
  • Support for webRTC has been removed

v2.0.0 Release Candidate 1

01 Nov 11:56
Compare
Choose a tag to compare
Pre-release

Enhancements

  • Added heartbeats over WebSocket connection
  • Presence has been added to query and subscribe to who is online with the cluster
  • E2E tests refactored

Breaking Changes

  • Changed format of RPC request ACK messages to be more consistent with the rest of the specs
    #408
  • We now depend only on browser/node.js WebSockets, removing support for TCP and engine.io
  • Support for webRTC has been removed
  • Supports deepstream.io v2.0.0+ only

Improved record performance and Improved E2E test suite

30 Sep 15:49
Compare
Choose a tag to compare

Improved record performance by @ronag
Huge improvements to testing framework, and fixes for message denied events

Changelog can be found here

Smart Listening

08 Sep 11:26
Compare
Choose a tag to compare

Smart listening, giving you much more granular control over your micro-service infrastructure.

Changelog can be found here

v1.0.2

28 Jul 16:52
Compare
Choose a tag to compare

[1.0.2] - 2016-07-28

Bug Fixes

  • allow do create and discard the same record in a synchronous loop #167
  • record snapshots are not waiting for isReady #140
  • record subscriptions are not waiting for isReady in combination with triggerNow #138
  • broken unsubscribe due to wrong internal argument delegation #190

Enhancements

  • provide a MAX_RECONNECTION_ATTEMPTS_REACHED event #175
  • provide a maxReconnectInterval option #176

Features

  • Terminate unauthenticated connections after a timeout #226

v1.0.1

19 Jul 08:50
Compare
Choose a tag to compare

[1.0.1] - 2016-07-19

Bug Fixes

Fixed issue where deleted record was not getting removed

v1.0.0

10 Jul 17:47
Compare
Choose a tag to compare

[1.0.0] - 2016-07-10

Features

Merge Conflict Resolution #4

Users can now set a global and per record merge strategy. This allows the application to respond to VERSION_EXISTS and use a REMOTE_WINS, LOCAL_WINS or a custom merge strategy

Global:

const client = deepstream( 'localhost:6020', {
    mergeStrategy: deepstream.MERGE_STRATEGIES.REMOTE_WINS
});

Local:

const record = client.record.getRecord( 'user/1' )
record.setMergeStrategy( ( record, remoteValue, remoteVersion, callback ) => {
  callback( null, remoteValue )
} )

Enhancements

Connection Redirects

deepstream protocol now has a connection establishment handshake that allows the client to be redirected to another deepstream before requesting/publishing data

Record deletes #111

Users can now delete content within records by setting it to undefined

record.set( path, undefined )
Reduced client size #75

Client size bundle has been reduced by not including mocks for the tcp connection

Discard/Delete only on ready #94

Record discards and deletes now get called after when ready, which makes the API cleaner

Before:

record = client.record.getRecord( 'user1' )
record.set( 'name', 'bob' )
record.onReady( () => {
  record.discard()
})

Now:

record = client.record.getRecord( 'user1' )
record
  .set( 'name', 'bob' )
  .discard()
Exposed Constants

You can now access constants on deepstream

// on the constructor
const C = deepstream.CONSTANTS;
// and instance
const client = deepstream( 'localhost:6020' )
CONST C = client.CONSTANTS;

Breaking Changes

Login callback

The login callback now only takes two arguments instead of three. This is to make it easier for the user to send their own custom data from an authentication hander or when using the http authentication handler

client.login( {}, ( success, data ) => {
  if( success ) {
    // data is meta data associated with user session
    // or null
  } else {
    // data is error message or custom error object
    // with reason why or null
  }
} )
EngineIO Default Path

We now use deepstream instead of engine.io as the default engineio path

Bug Fixes

  • Login after logout doesn't overide auth parameters #88
  • Deepstream not updating object properties #96 ( @drsirmrpresidentfathercharles )

v1.0.0-beta.1

17 Jun 09:18
Compare
Choose a tag to compare
v1.0.0-beta.1 Pre-release
Pre-release

The 1.0.0-beta.1 release, introducing merge conflicts and connection redirects.

All changed will go into the 1.0 release notes.

0.5.0

11 Apr 06:27
Compare
Choose a tag to compare

Features

  • ds.record.has( 'recordName', ( error, hasRecord ) => { }) allows to check if a record exists without creating it
  • ds.record.snapshot('recordName', (error, snapshot) => {}) allows for one of requests of record data

Updates

  • now using jasmine rather than jasmine-node

version 0.4.3

07 Mar 09:43
Compare
Choose a tag to compare

Added support for webpack