Как можно отобразить «чанкированные» ответы, как только они поступят в AngularJS?

В настоящее время у меня возникла проблема с отображением фрагментов ответов, которые я отправляю с сервера Node.js веб-службы (localhost: 3000) на симулированный клиент, работающий на сервере Node.js (localhost: 3001).

edit * - Текущая реализация просто использует Angular% http в качестве транспорта без веб-сокетов

Логика выглядит следующим образом:

1 Создайте массив на стороне клиента в «Городах» и отправьте их (из контроллера AngularJS) в веб-службу, расположенную по адресу: localhost: 3000 / getMatrix

$http({
    method: 'POST',
    url: 'http://localhost:3000/getMatrix',
    data: cityArray
}).
success(function (data,status,headers,config){
    // binding of $scope variables

    // calling a local MongoDB to store the each data item received
    for(var key in data){
        $http.post('/saveRoutes', data[key])
        .success(function (data, status){
            // Data stored
        })
        .error(function (data, status){
            // error prints in console
        });
   }

}).
error(function (data,status,headers,config){
    alert("Something went wrong!!");
});


2 Затем веб-служба выполняет свой процесс для создания матрицы «городов» (например, если было пройдено 5 городов, она вернула бы матрицу JSON 5by5 [25 элементов]). Но загвоздка в том, что он передает данные в виде кусков благодаря Node's response.write (данные )

Примечание: Node.js автоматически устанавливает в заголовке «Transfer-Encoding»: «chunked».

* Other code before (routing/variable creation/etc.) *

res.set({
     'Content-Type':'application/json; charset=utf-8',
});
res.write("[\n");

* Other code to process loops and pass arguments *

// query.findOne to MongoDB and if there are no errors
res.write(JSON.stringify(docs)+",\n");


* insert more code to run loops to write more chunks *

// at the end of all loops
res.end("]");

// Final JSON looks like such
[
    { *data* : *data* },
    { *data* : *data* },
    ......
    { *data* : *data* }
]


В настоящее время проблема заключается вне что ответ «chunked» не достигает своего места назначения, но я не знаю, как начать обработку данных, как только они появятся.

Это проблема, так как я пытаюсь создать матрицу размером 250x250 и жду полного отклика, который перегружает способность Angular отображать результаты, поскольку он пытается сделать все это сразу (таким образом, разрывая страницу).

Это также проблема, поскольку я пытаюсь сохранить ответ в MongoDB, и он может обрабатывать только определенный размер данных, прежде чем он станет «слишком большим» для обработки MongoDB.

Я пытался заглянуть в Angular's$ д иAPI обещания / отсрочки, но я немного запутался в том, как это реализовать, и не нашел способа начать обработку фрагментов данных по мере их поступления.

Этот вопрос на ТАК о работе с кусками тоже не очень помогло.

Будем весьма благодарны за любую помощь или советы по отображению фрагментированных данных, связанных с AngularJS.

Если бы ответы могли быть информативными фрагментами кода, демонстрирующими эту технику, я был бы очень признателен, так как просмотр примера помогает мне узнать больше, чем текстовое описание.

-- Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос