Commit ddb716b4d11febeda8a87f07f1630afb9ac39266

Authored by dhuy
1 parent 37fda1f7
Exists in master and in 1 other branch devel

Supporting callback argument

Showing 1 changed file with 36 additions and 5 deletions   Show diff stats
server.js
1 1 var parameters = require('./helpers/parameters');
2 2 var exec = require('child_process').exec, child;
3 3 var path = require('path');
  4 +var http = require('http');
  5 +var url = require('url');
4 6 var fs = require('fs');
  7 +var querystring = require('querystring');
5 8 var express = require('express');
6 9  
7 10 var host = '0.0.0.0';
... ... @@ -229,11 +232,39 @@ app.post('/api', function(req, res){
229 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 269 /* Listener que dispara quando a requisição ao core da erro */
239 270 child.on('error', function(code, signal){
... ...