amwmedia
12/28/2016 - 2:44 PM

uncontext style random data generator. Used for the random-nodecopter project my team did at jsconf2015.

uncontext style random data generator. Used for the random-nodecopter project my team did at jsconf2015.

(function () {
	var data = {};
	var dataLastSent = '';
	var listeners = [];

	setInterval(genA, 1500);
	setInterval(genB, 2270);
	setInterval(genC, 5234);

	genA();
	genB();
	genC();

	function genA() {
		var time = (new Date()).getTime();
		data.a = time % 40;
		pushUpdate();
	}

	function genB() {
		var time = (new Date()).getTime();
		data.b = time % 13;
		pushUpdate();
	}

	function genC() {
		var time = (new Date()).getTime();
		data.c = time % 2;
		pushUpdate();
	}

	function pushUpdate () {
		var dataString = JSON.stringify(data);
		if (dataLastSent !== dataString) {
			listeners.forEach(function (f) {
				f(data);
			});
			dataLastSent = dataString;
		}
	}

	window.onRandomData = function (listener) {
		listeners.push(listener);
	};
}());