Skip to main content

Emitter

The Emitter object is responsible for sending and storing all events.

We provide the following emitters available currently:

  • SyncEmitter : Slow blocking synchronous operation, useful for testing but should not be used in production.
  • AsyncEmitter : Fully asynchronous operation which uses the ThreadPool to perform all of its operations.
  • WebGlEmitter : Emitter implementing the async API that is compatible with WebGL.

Constructor

Argument NameDescriptionRequired?Default
endpointThe collector uri the emitter should useYesNull
protocolThe request Protocol (HTTP or HTTPS)NoHTTP
methodThe HTTP Method (GET or POST)NoPOST
sendLimitThe amount of events to send at a timeNo500
byteLimitGetThe byte limit for a GET requestNo52000
byteLimitPostThe byte limit for a POST requestNo52000

A full Emitter construction should look like the following:

IEmitter e1 = new AsyncEmitter ("com.collector.acme", HttpProtocol.HTTPS, HttpMethod.GET, 50, 30000, 30000);

All of these variables can be altered after creation with the accompanying emitter.SetXXX() function. However do be aware that multiple threads will be accessing these variables so to be safe always shut the Tracker down using StopEventTracking() before ammending anything.

NOTE: Be aware that when sending events via GET all events will be sent individually. This means that if your sendLimit is 500 there is the potential for 500 Threads to be spawned at the same time which can cause serious performance issues. To alleviate this concern simply drop your sendLimit to a more manageable range.