[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Node.JS + Socket.IO
RCuPeR
Здравствуйте!

Краткое описание:
Мне нужно организовать систему диалогов на сайте. На серверной стороне использую Node.js, транспортом служит socket.io.

Задача:
Сделать отправку сообщения пользователю.

Пример:
Я отправляю сообщение пользователю - ему приходит оповещение и сообщение пишется в общую базу с указанием user_id собеседников.

Проблема:
Как сделать отправку информации определенному пользователю?

Размышления:
В socket.io есть метод socket.brodcast.send(), если я все верно понял - он отправляет некие сообщения всем пользователям онлайн. Я могу передавать в общий поток информацию, а потом, на клиенте, сортировать ее и пересылать сообщение нужному пользователю. Но зачем? Если у меня будет 10 000 пользователей онлайн - это будет огромная нагрузка на клиента. Как бы сделать так, что бы сообщения приходили определенным пользователям?

Спасибо за внимание!

_____________
Гнусный социопат с комплексом Бога.
RCuPeR
То что есть сейчас:
    addMessage: function(data) {
if (data.dialog != '') {
messagesDb.insert({
subject: '...',
preview: ((data['text'].length > 40) ? data['text'].substr(0, 20) + '...' : data['text'] ),
owner_user_id: IM.iUserId,
viewer_user_id: data.viewer_user_id,
timestamp: (Date.now() / 1000),
dialog_id: new ObjectID(data.dialog)
}, function (err, doc) {
if (err) throw err;
textsDb.insert({text: data.text, text_parsed: data.text, custom_id: doc._id}, function(err, doc) {
if (err) throw err;
IM.socket.json.send({m: 'confirmAddMessage', data: {key: 'success', text: data.text}});
});
});
}
}


Это метод который принимает данные отправленные юзером и пишет их в МонгоБД.

Как видно из этой строки:
IM.socket.json.send({m: 'confirmAddMessage', data: {key: 'success', text: data.text}});

после записи данных, я отправляю на клиент информацию об успешной записи, и формирую у себя в диалоге новое сообщение. Но как отправить эти же данные определенному (viewer_user_id) пользователю/собеседнику.

_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.