Я новичок в Nodejs, и я учусь из фрагментов кода, загруженных из сети. У меня есть основной вопрос в коде приложения чата.Излучатели событий в NodeJs
Ниже приведен код из app.js (на стороне сервера)
var stream = collection.find().sort().limit(10).stream(); // collection coming from mongoDb
stream.on('data', function (chat) {
socket.emit('chat', chat.content);
});
socket.on('chat', function (msg) {
// code to add into mongoDB
}
Приведенный выше код, получить записи из MongoDB и испускает данные, которые фиксируются в стороне клиента, а также функцию, которая прослушивает, если в данных выталкивается из клиента, чтобы вставить его в БД.
Client код стороны -
var socket = io();
$('#send-message-btn').click(function() { // this is a button
var msg = $('#message-box').val();
socket.emit('chat', msg);
$('#messages').append($('<p>').text(msg));
$('#message-box').val('');
return false;
});
socket.on('chat', function (msg) {
console.log('adding to message div '+msg);
$('#messages').append($('<p>').text(msg));
});
Теперь мой вопрос, socket.emit в app.js будет захвачен socket.on
метода в client.js
и socket.emit
в кнопке лижут функции в стороне клиента фиксируется в socket.on
в сервере боковая сторона.
Как это работает? Почему app.jit app.js не захвачен в методе socket.on
внутри app.js, и тот же метод emt-метода js-клиента не захвачен в методе socket.on
клиента ja.
Я знаю, что это очень простой вопрос, но, пожалуйста, помогите мне в понимании.