Commit ddb716b4d11febeda8a87f07f1630afb9ac39266
1 parent
37fda1f7
Exists in
master
and in
1 other branch
Supporting callback argument
Showing
1 changed file
with
36 additions
and
5 deletions
Show diff stats
server.js
| 1 | var parameters = require('./helpers/parameters'); | 1 | var parameters = require('./helpers/parameters'); |
| 2 | var exec = require('child_process').exec, child; | 2 | var exec = require('child_process').exec, child; |
| 3 | var path = require('path'); | 3 | var path = require('path'); |
| 4 | +var http = require('http'); | ||
| 5 | +var url = require('url'); | ||
| 4 | var fs = require('fs'); | 6 | var fs = require('fs'); |
| 7 | +var querystring = require('querystring'); | ||
| 5 | var express = require('express'); | 8 | var express = require('express'); |
| 6 | 9 | ||
| 7 | var host = '0.0.0.0'; | 10 | var host = '0.0.0.0'; |
| @@ -229,11 +232,39 @@ app.post('/api', function(req, res){ | @@ -229,11 +232,39 @@ app.post('/api', function(req, res){ | ||
| 229 | // [stdout] = vlibras-core output | 232 | // [stdout] = vlibras-core output |
| 230 | }); | 233 | }); |
| 231 | 234 | ||
| 232 | - /* Listener que dispara quando a requisição ao core finaliza */ | ||
| 233 | - child.on('close', function(code, signal){ | ||
| 234 | - res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' }); | ||
| 235 | - ID_FROM_BD++; | ||
| 236 | - }); | 235 | + if (req.query.callback === undefined) { |
| 236 | + /* Listener que dispara quando a requisição ao core finaliza */ | ||
| 237 | + child.on('close', function(code, signal){ | ||
| 238 | + res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' }); | ||
| 239 | + ID_FROM_BD++; | ||
| 240 | + }); | ||
| 241 | + } else { | ||
| 242 | + | ||
| 243 | + var path = url.parse(req.query.callback); | ||
| 244 | + | ||
| 245 | + var data = querystring.stringify({ 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' }); | ||
| 246 | + | ||
| 247 | + var options = { | ||
| 248 | + host: path.hostname, | ||
| 249 | + port: path.port, | ||
| 250 | + path: path.path, | ||
| 251 | + method: 'POST', | ||
| 252 | + headers: { | ||
| 253 | + 'Content-Type': 'application/x-www-form-urlencoded', | ||
| 254 | + 'Content-Length': Buffer.byteLength(data) | ||
| 255 | + } | ||
| 256 | + }; | ||
| 257 | + | ||
| 258 | + var requesting = http.request(options, function(res) { | ||
| 259 | + res.setEncoding('utf8'); | ||
| 260 | + res.on('data', function (chunk) { | ||
| 261 | + console.log("body: " + chunk); | ||
| 262 | + }); | ||
| 263 | + }); | ||
| 264 | + | ||
| 265 | + requesting.write(data); | ||
| 266 | + requesting.end(); | ||
| 267 | + } | ||
| 237 | 268 | ||
| 238 | /* Listener que dispara quando a requisição ao core da erro */ | 269 | /* Listener que dispara quando a requisição ao core da erro */ |
| 239 | child.on('error', function(code, signal){ | 270 | child.on('error', function(code, signal){ |