WebSocket support enables other applications to control ChronoFly and obtain real time passing data.

Do not expose your timing network for unauthorized access! There is no authentication mechanism in this WebSocket implementation.

Usage example


var j2ws = new WebSocket("ws://localhost:2235");

j2ws.onmessage = function(e) {
  var event = e.data.split(": ")[0];
  var value = e.data.split(": ")[1];

  switch(event) {
    case "pas":
      console.log("Passing with transponder: " + value);
    case "ion":
      console.log("Digital input " + value + " ON");

var startTiming = function() {
  j2ws.send("tim: 1");


Uses TCP port: 2235

Action message format

action: value

Where action is one of supported actions and value is the input of the action.

Supported actions

Digital output ON

oon: 4

Where 4 is pin number.

Digital output OFF

oof: 4

Where 4 is pin number.

Timing START

tim: 1

Timing STOP

tim: 0

Event message format

event: value

Where event is one of supported events and value is the output of the event.

Supported events


pas: 16 1 00:00:21.482

Where 16 is passing's transponder number, 1 is lap number, and 00:00:21.482 is passing time (in format HH:MM:SS.NNN)

Digital input ON

ion: 4

Where 4 is pin number.

Digital input OFF

iof: 4

Where 4 is pin number.

Start light ON

son: 1

Where 1 is light number.

Start light OFF

sof: 1

Where 1 is light number.