2013-06-27 4 views
1

У меня есть сервер, который с помощью TLS 1.0 Это дает мне бесконечный поток данных на терминале, когда командаПолучение потока OpenSSL в node.js

~$ openssl s_client -connect 'serveraddress':5000 

Это дает мне поток в режиме реального времени XML-данных что мой сервер в настоящее время делает. Я хочу подключиться к нему с помощью node.js или любым другим способом, который дает мне возможность вытолкнуть этот поток данных как веб-узел или непосредственно на JS, но я не могу понять, как это сделать. Может ли кто-нибудь из вас помочь? Спасибо :)

+0

ИТАК, если я получаю то, что вы хотите, вы хотите, чтобы перенаправить поток вывода вашего сервера к программе, которая посылает эти данные через Интернет? Я не часто задаю этот вопрос, но почему вы хотите это сделать? – Sheljohn

+0

Вы думали о создании потока RSS с вашими XML-данными? – Sheljohn

+1

@ Sh3ljohn: Я действительно хочу использовать этот выходной поток на javascript для построения графика. Но поскольку этот поток xml основан на https вместо wss, я не могу использовать его непосредственно в моей JS. Я просто ищу способ доступа к данным. Перенаправление через локальный сервер, который выводит его как websocket, является одним из способов решения моей проблемы. – SinnerShanky

ответ

1

Я думаю, что что-то подобное должно решить вашу проблему.

var terminal = require('child_process').spawn('bash'); 

terminal.stdout.on('data', function (data) { 
    console.log('stdout: ' + data); 
}); 

terminal.on('exit', function (code) { 
     console.log('child process exited with code ' + code); 
}); 

setTimeout(function() { 
    console.log('Sending stdin to terminal'); 
    terminal.stdin.write("openssl s_client -connect 'serveraddress':5000"); 
    terminal.stdin.end(); 
}, 1000); 

Edit: Попробуйте для рабочего примера:

terminal.stdin.write("ping www.google.de"); 
+0

Я попробую это и вернусь к вам. Спасибо :) – SinnerShanky

+0

Я пробовал это. Это дает мне эту ошибку: «дочерний процесс вышел с кодом 255» Любой способ исправить это? – SinnerShanky

+0

Ну, я думаю, что что-то с вашей командой openssl неверно. Когда я пытаюсь использовать terminal.stdin.write («ping www.google.de»); он работает отлично. – Coxer