Sha256: 42ff77720b499a1e910ee92ab0adc90ee61de59284abf5dfaf7120f1e890e0fe

Contents?: true

Size: 923 Bytes

Versions: 5

Compression:

Stored size: 923 Bytes

Contents

class Firehose.Transport
  # Class method to determine whether transport is supported by the current browser
  @supported: =>
    false

  constructor: (args) ->
    @_errorInterval = 5000 

  # Chainable config
  connected: (@onConnected) -> this
  disconnected: (@onDisconnected) -> this
  message: (@onMessage) -> this
  error: (@onError) -> this
  url: (@url) -> this
  params: (@params) -> this
  options: (@options) -> this

  # Lets rock'n'roll
  connect: (delay = 0) =>
    setTimeout =>
      @_request()
    , delay
    this

  # Sub classes need to implement this method to handle requests
  _request: =>

  # Default error handler
  _error: (event) =>
    # Lets try to connect again with delay
    @onDisconnected()
    @connect(@_errorInterval)

  # Default connection established handler
  _open: (event) =>
    @onConnected()

  # Default connection closed handler
  _close: (event) =>
    @onDisconnected()

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
firehose-0.0.8 lib/assets/javascripts/firehose/transport.js.coffee
firehose-0.0.7 lib/assets/javascripts/firehose/transport.js.coffee
firehose-0.0.6 lib/assets/javascripts/firehose/transport.js.coffee
firehose-0.0.5 lib/assets/javascripts/firehose/transport.js.coffee
firehose-0.0.4 lib/assets/javascripts/firehose/transport.js.coffee