Показать сообщение отдельно
  #4 (permalink)  
Старый 26.11.2012, 11:52
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

Появилась необходимость усложнить задачу:
на сокет отправляется три запроса, нужно дождаться всех трех ответов и вернуть последний.

Не могу понять, как правильно организовать неблокирующее прослушивание -- когда я буду вызывать код обработки сокетного запроса, нужно дождаться ответ в основном модуле программы, как правильно подвесить коллбэк?..
Например, есть такой блок кода:
var HOST = '127.0.0.1';
var PORT = 6969;

var client = new net.Socket();
client.connect(PORT, HOST, function() {

    console.log('CONNECTED TO: ' + HOST + ':' + PORT);
    // Write a message to the socket as soon as the client is connected, the server will receive it as message from the client 
    client.write('I am Chuck Norris!');

});

// Add a 'data' event handler for the client socket
// data is what the server sent to this socket
client.on('data', function(data) {
    
    console.log('DATA: ' + data);
    // Close the client socket completely
    client.destroy();
    
});


здесь - завершается работа, когда приходит из сокета единственный ответ. а мне нужно чтобы эта конструкция закончила работу, когда придет ответ, похожий на некоторую строку-индикатор, например "data-end-recived:1234567890", и вернуть этот ответ в главный модуль программы.
Ответить с цитированием