-
Notifications
You must be signed in to change notification settings - Fork 52
/
Copy pathApp.js
94 lines (52 loc) · 1.27 KB
/
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/**
* Websocket server app
*
* Will use base64 return to the websocket clients and
* in memory capturing without saving
*
*/
"use strict";
var port = 9090;
var HTTP = require( "http" );
var FS = require( "fs" );
var HTML_CONTENT = FS.readFileSync( __dirname + "/www/index.html" );
var WS = require( "ws" );
var WSS = new WS.Server({ port: 9091 });
// Broadcast to all.
WSS.broadcast = function broadcast( data ) {
WSS.clients.forEach( function each( client ) {
client.send( data );
});
};
var NodeWebcam = require( "./../../" );
var Webcam = NodeWebcam.create({
callbackReturn: "base64",
saveShots: false
});
// Main
init();
function init() {
setupHTTP();
setupWebcam();
console.log( "Visit localhost:9090" );
}
function setupHTTP() {
var server = HTTP.createServer();
server.on( "request", function( request, response ) {
response.write( HTML_CONTENT );
response.end();
});
server.listen( port );
}
function setupWebcam() {
function capture() {
Webcam.capture( "picture", function( err, data ) {
if( err ) {
throw err;
}
WSS.broadcast( data );
setTimeout( capture, 25 );
});
}
capture();
}