in src/js/server/server.ts [63:159]
private listen(): void {
this.server.listen(App.PORT, () => {
console.log('Running server on port %s', App.PORT);
});
let me = this;
this.io.on('connect', (client: any) => {
console.log(`Client connected [id=${client.id}]`);
me.io.emit('setup', `Client connected [id=${client.id}]`);
client.on('snapshot', (base64Img: string) => {
automl.detect(base64Img, function(results: any){
let text = '';
if(results && results.payload[0]){
let displayName = results.payload[0].displayName;
let label = '';
switch(displayName.toLowerCase()) {
case 'sunflower':
case 'sunflowers':
label = 'a Sunflower';
break;
case 'tulip':
case 'tulips':
label = 'a Tulip';
break;
case 'rose':
case 'roses':
label = 'a Rose';
break;
case 'daisy':
label = 'a Daisy';
break;
case 'cactus':
label = 'a Cactus';
break;
case 'dandelion':
label = 'a Dandelion';
break;
case 'violet':
label = 'a Violet';
break;
case 'aster':
label = 'an Aster';
break;
case 'dahlia':
label = 'a Dahlia';
break;
case 'waterlilly':
label = 'a Water Lilly';
break;
default:
label = 'a Flower';
}
text = `Great, this looks like ${label}`;
} else {
text = `Auch, I couldn't detect a flower.`;
}
console.log(results);
// TODO change Dialogflow speech based on results
client.emit('imgresult', text);
});
});
client.on('meta', (meta: any) => {
console.log('Connected client on port %s.', App.PORT);
dialogflow.setupDialogflow(meta);
});
client.on('message', (stream: any, herz: number) => {
console.log(herz);
console.log(stream);
// start streaming from client app to dialogflow
dialogflow.prepareStream(stream, function(audioBuffer: any){
// sending to individual socketid (private message)
client.emit('broadcast', audioBuffer);
dialogflow.detectStreamCall.end();
});
// dialogflow.createAudioFile(stream);
});
client.on('stop', () => {
console.log('finalize stream');
// stop the client stream, and start detecting
dialogflow.finalizeStream();
/*dialogflow.detectIntent(function(audioBuffer: any){
// sending to individual socketid (private message)
client.emit('broadcast', audioBuffer);
});*/
});
client.on('disconnect', () => {
console.log('Client disconnected');
});
});
}