создаю мессенджер...
есть код который отправляет сообщение пользователю и срабатывает когда пользователь в сети
нажатие на кн. отправить
$(document).on('click','#sendmsg',function(e){
if($('.textarea[data='+$(this).attr('data')+']').val() !== '') {
socket.emit('send', {usr:$(this).attr('data'), msg:$('.textarea[data='+$(this).attr('data')+']').val()});
$('.messageBlock[data="'+$(this).attr('data')+'"]').append('<p class="msgTo">'+$('.textarea[data="'+$(this).attr('data')+'"]').val()+'</p>');
$('.textarea[data="'+$(this).attr('data')+'"]').val('');
}
});
прием на сервере
socket.on('send', function (data) {
if (io.sockets.connected[users_login_list[data.usr]]===undefined) {
//тут вопрос как сказать пользователю 1 что пользователь2 не в сети??
socket.emit('sendmsg', {msg:'User is offline'});
} else {
//тут все хорошо
io.sockets.connected[users_login_list[data.usr]].emit('sendmsg', {msg:data.msg, usr:socket.user_id});
}
});
вывод сообщения в окно пользователей
socket.on('sendmsg', function (data) {
if($('.messageBlock[data='+data.usr+']').length !== 0) { // тут я проверяю если открыто диалоговое окно чтоб в него добавить сообщения
$('.messageBlock[data='+data.usr+']').append('<p class="msgFrom">'+data.msg+'</p>');
}
});