Comparing version 0.1.2 to 0.1.3
@@ -8,3 +8,4 @@ /* | ||
var net = require('net'), | ||
events = require('events'); | ||
events = require('events'), | ||
knife = require('knife'); | ||
@@ -15,4 +16,4 @@ /* | ||
(function(){ | ||
var mesh = {}, | ||
delimiter = '::::/bm/::::', | ||
var mesh = {connected: false, connecting: false}, | ||
messageBuffer = '', | ||
ee = new events.EventEmitter(), | ||
@@ -27,3 +28,6 @@ c; | ||
mesh.connect = function(options){ | ||
if (mesh.connecting || mesh.connected) return mesh; | ||
mesh.connected = false; | ||
mesh.connecting = true; | ||
@@ -43,4 +47,2 @@ options = options || {}; | ||
mesh.connecting = false; | ||
return mesh; | ||
@@ -77,3 +79,3 @@ } | ||
c.write(JSON.stringify(m) + delimiter); | ||
c.write(JSON.stringify(m)); | ||
@@ -100,2 +102,3 @@ return ee.emit(hook, data); | ||
else { | ||
mesh.connecting = false; | ||
mesh.connected = true; | ||
@@ -107,34 +110,46 @@ console.log('Connected to mesh server.'); | ||
/* | ||
* A transmission has been recieved from the mesh server | ||
*/ | ||
var incoming = function(m){ | ||
messageBuffer += m.toString(); | ||
var raw = knife.parse(messageBuffer); | ||
for (var i in raw.result) { | ||
processMessage(raw.result[i]); | ||
} | ||
messageBuffer = raw.remainder; | ||
} | ||
/* | ||
* Do something with a single message | ||
*/ | ||
var processMessage = function(m){ | ||
if (!mesh.id) { | ||
mesh.id = m; | ||
console.log('ID: ' + m); | ||
if (mesh.nameBuffer) { | ||
console.log('Sending name request to server..'); | ||
var nm = { | ||
id: mesh.id, | ||
hook: 'BCHANGENAME', | ||
name: mesh.nameBuffer | ||
switch (m.hook) { | ||
case 'BINIT': | ||
mesh.id = m.data.id; | ||
console.log('ID: ' + mesh.id); | ||
if (mesh.nameBuffer) { | ||
console.log('Sending name request to server...'); | ||
var reply = { | ||
id: mesh.id, | ||
hook: 'BCHANGENAME', | ||
data: { | ||
name: mesh.nameBuffer | ||
} | ||
} | ||
c.write(JSON.stringify(reply)); | ||
} | ||
c.write(JSON.stringify(nm)); | ||
} | ||
} else if (m.indexOf('BNAMEACCEPT') != -1) { | ||
var raw = m.split('::'); | ||
if (raw[1] != mesh.nameBuffer) { | ||
console.log('Server did not accept name request. Accepting server-provided ID: ' + raw[1]); | ||
} else { | ||
console.log('Server accepted name request.'); | ||
} | ||
mesh.id = raw[1]; | ||
console.log('ID: ' + mesh.id); | ||
} else { | ||
try { | ||
var m = JSON.parse(m); | ||
break; | ||
case 'BNAMEACCEPT': | ||
if (m.data.name != mesh.nameBuffer) { | ||
console.log([m, mesh.nameBuffer]); | ||
console.log('Server did not accept name request. Accepting server-provided ID: ' + m.data.id); | ||
} else { | ||
console.log('Server accepted name request.'); | ||
} | ||
mesh.id = m.data.name; | ||
console.log('ID: ' + mesh.id); | ||
break; | ||
default: | ||
ee.emit(m.hook, m.data); | ||
} catch (e) { | ||
console.log('Could not parse:'); | ||
console.log(m); | ||
} | ||
break; | ||
} | ||
@@ -144,14 +159,2 @@ }; | ||
/* | ||
* A transmission has been recieved from the mesh server | ||
*/ | ||
var incoming = function(m){ | ||
m = m.toString(); | ||
var raw = m.split(delimiter); | ||
if (raw.length > 1) raw.pop(); | ||
for (var i in raw) { | ||
processMessage(raw[i]); | ||
} | ||
} | ||
/* | ||
* We have been disconnected from the mesh server | ||
@@ -165,3 +168,2 @@ * Freeze state and trigger new connection | ||
if (!mesh.connecting) { | ||
mesh.connecting = true; | ||
setTimeout(mesh.connect, 3000); | ||
@@ -168,0 +170,0 @@ console.log('Retrying mesh connection in 3 seconds...'); |
@@ -5,3 +5,3 @@ { | ||
"description": "Send messages to any nodejs process, anywhere on the Internet.", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"homepage": "http://bolt.io/", | ||
@@ -16,4 +16,6 @@ "repository": { | ||
}, | ||
"dependencies": {}, | ||
"dependencies": { | ||
"knife": "0.0.x" | ||
}, | ||
"devDependencies": {} | ||
} |
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Non-existent author
Supply chain riskThe package was published by an npm account that no longer exists.
Found 1 instance in 1 package
7440
8
175
0
1
2
+ Addedknife@0.0.x
+ Addedknife@0.0.2(transitive)