Class: Tracker

servers/tracker~ Tracker

Server class

new Tracker(app, config, logger, filer, runner, ini, crypter, connectionsList)

Create the service
Parameters:
Name Type Description
app App Application
config object Configuration
logger Logger Logger service
filer Filer Filer service
runner Runner Runner service
ini Ini Ini service
crypter Crypter Crypter service
connectionsList ConnectionsList Connections List service

Members


<static> provides :string

Service name is 'servers.tracker'
Type:
  • string

<static> requires :Array.<string>

Dependencies as constructor arguments
Type:
  • Array.<string>

<static> connectTimeout :number

Connect timeout
Type:
  • number

<static> pingTimeout :number

Will send keep alive at this interval
Type:
  • number

<static> pongTimeout :number

No data in socket timeout
Type:
  • number

<static> reconnectPause :number

Pause when reconnecting to tracker
Type:
  • number

<static> trackerSection

Tracker section delimiter in config

_peer

Retrieve peer server

Methods


<async> init(name)

Initialize the server
Parameters:
Name Type Description
name string Config section name
Returns:
Type
Promise

<async> start(name)

Start the server
Parameters:
Name Type Description
name string Config section name
Returns:
Type
Promise

<async> stop(name)

Stop the server
Parameters:
Name Type Description
name string Config section name
Returns:
Type
Promise

getServer(name)

Get server
Parameters:
Name Type Description
name string Tracker name
Returns:
Type
object | undefined

getToken(name)

Get daemon token for the tracker
Parameters:
Name Type Description
name string Tracker name
Returns:
Type
string

<async> setMasterToken(name, token)

Set master token
Parameters:
Name Type Description
name string Name of the tracker
token string The token
Returns:
Resolves to true on success
Type
Promise

<async> getMasterToken(name)

Get master token
Parameters:
Name Type Description
name string Name of the tracker
Returns:
Resolves to token or empty string
Type
Promise

<async> setDaemonToken(name, token)

Set daemon token for the tracker
Parameters:
Name Type Description
name string Name of the tracker
token string The token
Returns:
Resolves to true on success
Type
Promise

send(name, data)

Send message
Parameters:
Name Type Description
name string Tracker name
data Buffer | null Data to send

sendStatus(trackerName, connectionName [, active])

Send status message
Parameters:
Name Type Argument Default Description
trackerName string Tracker name
connectionName string Connection name
active boolean <optional>
true Is active

sendLookupIdentityRequest(trackerName, identity)

Send lookup identity request message
Parameters:
Name Type Description
trackerName string Tracker name
identity string Identity

sendPunchRequest(trackerName, connectionName)

Send punch request message
Parameters:
Name Type Description
trackerName string Tracker name
connectionName string Connection name

onMessage(name, data)

Tracker message handler
Parameters:
Name Type Description
name string Tracker name
data Buffer Message
Returns:
Destroy socket on false
Type
boolean

onError(name, error)

Tracker error handler
Parameters:
Name Type Description
name string Tracker name
error Error Error

onClose(name)

Tracker disconnect handler
Parameters:
Name Type Description
name string Tracker name

onTimeout(name)

Client timeout handler
Parameters:
Name Type Description
name string Tracker name

_reconnect(name)

Reconnect to the tracker
Parameters:
Name Type Description
name string Name of the server

_checkTimeout()

Check socket timeout