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