Hub JS Package

Hub JS Package

  • Users
  • Buckets
  • Threads
  • Textile Docs

›Client

Client

  • Client.withUserAuth() method
  • Client.withKeyInfo() method
  • Client.getToken() method
  • Client.getTokenChallenge() method
  • Client.newDB() method
  • Client.open() method
  • Client.deleteDB() method
  • Client.getDBInfo() method
  • Client.joinFromInfo() method
  • Client.newDBFromAddr() method
  • Client.listen() method
  • Client.listDBs() method
  • Client.newCollection() method
  • Client.newCollectionFromObject() method
  • Client.deleteCollection() method
  • Client.updateCollection() method
  • Client.getCollectionIndexes() method
  • Client.getCollectionInfo() method
  • Client.listCollections() method
  • Client.create() method
  • Client.save() method
  • Client.delete() method
  • Client.find() method
  • Client.findByID() method
  • Client.has() method
  • Client.readTransaction() method
  • Client.writeTransaction() method

WriteTransaction

  • WriteTransaction class
  • WriteTransaction.create() method
  • WriteTransaction.delete() method
  • WriteTransaction.find() method
  • WriteTransaction.findByID() method
  • WriteTransaction.has() method
  • WriteTransaction.save() method
  • WriteTransaction.start() method
  • WriteTransaction.discard() method

ReadTransaction

  • ReadTransaction class
  • ReadTransaction.find() method
  • ReadTransaction.findByID() method
  • ReadTransaction.has() method
  • ReadTransaction.start() method

Types

  • Action enum
  • DBInfo interface
  • Filter interface
  • Query class
  • Update interface
  • Where variable

@textile/hub > Client > listen

Client.listen() method

listen opens a long-lived connection with a remote node, running the given callback on each new update to the given instance. The return value is a close function, which cleanly closes the connection with the remote node.

Signature:

listen<T = any>(threadID: ThreadID, filters: Filter[], callback: (reply?: Update<T>, err?: Error) => void): grpc.Request;

Parameters

ParameterTypeDescription
threadIDThreadIDthe ID of the database
filtersFilter[]contains an array of Filters
callback(reply?: Update<T>, err?: Error) => voidThe callback to call on each update to the given instance.

Returns:

grpc.Request

Example 1

import {Client, ThreadID, Update} from '@textile/hub'

interface Astronaut {
  name: string
  missions: number
  _id: string
}
function setupListener (client: Client, threadID: ThreadID) {
  const callback = (update?: Update<Astronaut>) => {
    // Not safe if more than the Astronauts collection existed in the same DB
    if (!update || !update.instance) return
    console.log('New update:', update.instance.name, update.instance.missions)
  }
  const closer = client.listen(threadID, [], callback)
  return closer
}

Example 2

Listen to only CREATE events on a specific Collection.

import {Client, ThreadID, Update} from '@textile/hub'

interface Astronaut {
  name: string
  missions: number
  _id: string
}
function setupListener (client: Client, threadID: ThreadID) {
  const callback = (update?: Update<Astronaut>) => {
    if (!update || !update.instance) return
    console.log('New update:', update.instance.name, update.instance.missions)
  }
  const filters = [
    {collectionName: 'Astronauts'},
    {actionTypes: ['CREATE']}
  ]
  const closer = client.listen(threadID, filters, callback)
  return closer
}

← PreviousClient.listDBs() method →
  • Client.listen() method
  • Parameters
  • Example 1
  • Example 2
Hub JS Package
Docs
Getting StartedThreadDBBuckets
Resources
All DocumentationProject SlackBlog
More
GitHubStar
Follow @textileio