#model-view-controller #node.js #socket.io
#model-view-controller #node.js #socket.io
Вопрос:
Я использую Node.js
и хочу отправить клиенту несколько ответов. Таким образом, клиент отправит запрос AJAX POST и вернет некоторые данные. Но сервер должен продолжать выполнять некоторую обработку, и когда это будет сделано, я хочу, чтобы он отправил больше данных обратно.
Я знаю, что это хороший кандидат Socket.io
, но я действительно не видел примера того, как использовать socket.io
в контексте фреймворка MVC. Входит ли это в контроллер?
Ответ №1:
Вы могли бы использовать события, отправленные сервером. Вот пример:
https://github.com/chovy/nodejs-stream (полный пример исходного кода)
Пользовательский интерфейс
var source = new EventSource('stream');
source.addEventListener('a_server_sent_event', function(e) {
var data = JSON.parse(e.data);
//do something with data
});
Узел
if ( uri == '/stream' ) {
//setup http server response handling and get some data from another service
http.get(options, function(resp){
resp.on('data', function(chunk){
res.write("event: a_server_sent_eventn");
res.write("data: " chunk.toString() "nn");
});
});
}
Комментарии:
1.
EventSource
Поддерживается во всех современных браузерах?