Commit d6448432965247d73326feaea375b8057e2e0bad

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

Supporting callback argument

Showing 1 changed file with 58 additions and 9 deletions   Show diff stats
server.js
... ... @@ -125,16 +125,65 @@ app.post('/api', function(req, res){
125 125 // console.log(stdout);
126 126 });
127 127  
128   - /* Listener que dispara quando a requisição ao core finaliza */
129   - child.on('close', function(code, signal){
130   - res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' });
131   - ID_FROM_BD++;
132   - });
  128 + if (req.query.callback === undefined) {
  129 + /* Listener que dispara quando a requisição ao core finaliza */
  130 + child.on('close', function(code, signal){
  131 + res.send(200, { 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' });
  132 + ID_FROM_BD++;
  133 + });
133 134  
134   - /* Listener que dispara quando a requisição ao core da erro */
135   - child.on('error', function(code, signal){
136   - res.send(500, parameters.errorMessage('Erro na chamada ao core'));
137   - });
  135 + /* Listener que dispara quando a requisição ao core da erro */
  136 + child.on('error', function(code, signal){
  137 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  138 + });
  139 + } else {
  140 +
  141 + var path = url.parse(req.query.callback);
  142 +
  143 + var data = querystring.stringify({ 'response' : 'http://' + SERVER_IP + ':' + port + '/' + ID_FROM_BD + '.flv' });
  144 +
  145 + var options = {
  146 + host: path.hostname,
  147 + port: path.port,
  148 + path: path.path,
  149 + method: 'POST',
  150 + headers: {
  151 + 'Content-Type': 'application/x-www-form-urlencoded',
  152 + 'Content-Length': Buffer.byteLength(data)
  153 + }
  154 + };
  155 +
  156 + var requesting = http.request(options, function(res) {
  157 + res.setEncoding('utf8');
  158 + });
  159 +
  160 + requesting.write(data);
  161 + requesting.end();
  162 +
  163 + /* Listener que dispara quando a requisição ao core da erro */
  164 + child.on('error', function(code, signal){
  165 +
  166 + var data = querystring.stringify(parameters.errorMessage('Erro na chamada ao core'));
  167 +
  168 + var options = {
  169 + host: path.hostname,
  170 + port: path.port,
  171 + path: path.path,
  172 + method: 'POST',
  173 + headers: {
  174 + 'Content-Type': 'application/x-www-form-urlencoded',
  175 + 'Content-Length': Buffer.byteLength(data)
  176 + }
  177 + };
  178 +
  179 + var requesting = http.request(options, function(res) {
  180 + res.setEncoding('utf8');
  181 + });
  182 +
  183 + requesting.write(data);
  184 + requesting.end();
  185 + });
  186 + }
138 187 });
139 188 } else {
140 189 res.send(500, parameters.errorMessage('Vídeo com Extensão Inválida'));
... ...