| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /**
- * @fileoverview Dynamic interface to MeshCentral2
- * @author Ylian Saint-Hilaire
- * @version v0.0.1
- */
- var createMeshConnection = function (connectionId) {
- var obj = {};
- obj.connectionId = connectionId;
- obj.state = 0;
- obj.websocket = null;
- obj.onStateChanged = null;
- obj.onData = null;
-
- obj.connect = function () {
- if (obj.state == 0) {
- obj.websocket = new WebSocket(window.location.protocol.replace('http', 'ws') + '//' + window.location.host + '/meshrelay.ashx?id=' + obj.connectionId);
- obj.websocket.binaryType = "arraybuffer";
- obj.websocket.onopen = function (e) { console.log('WebSocket Connected', e); };
- obj.websocket.onmessage = function (e) {
- console.log('WebSocket Message', e);
- if ((obj.state = 1) && (e.data == 'c')) {
- obj.state = 2;
- if (obj.onStateChanged) { onStateChanged(obj, 2); }
- console.log('WebSocket Peer Connection', e);
- obj.send('bob');
- } else {
- if (obj.onData != null) { obj.onData(obj, e.data); }
- }
- };
- obj.websocket.onclose = function (e) {
- console.log('WebSocket Closed', e);
- obj.state = 0;
- if (obj.onStateChanged) { onStateChanged(obj, 0); }
- };
- obj.websocket.onerror = function (e) { console.log('WebSocket Error', e); };
- obj.state = 1;
- if (obj.onStateChanged) { onStateChanged(obj, 1); }
- }
- return obj;
- };
-
- obj.send = function (data) {
- if ((obj.state == 2) && (obj.websocket != null)) { obj.websocket.send(data); }
- };
- return obj;
- }
|