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){ |