2015-11-19 3 views
0

im пытается сделать чат-приложение с node.js. Я хочу заключить sevaral-сообщения в течение 10 секунд внутри одного div (пузыря), такого как facebook и gmail chat. следует моему коду.Группировка чата с помощью мусора

var last_date= Date.now(); 

var cre_div = "<div class='row message'>new</div>"; 

function addMessage(msg, pseudo, date, self) { 


    Date.now = function() { return new Date().getTime(); } 

    if(self){ 
     if(last_date!=null && last_date+10000<Date.now()) { 

      var chat = $("#chatEntries").append('<div class="row message"><p class="infos"><span class="pseudo">'+pseudo+'</span><time class="date" title="'+Date.now()+'">'+Date.now()+'</time></p><p>' + msg + '</p></div>'); 
      console.log(chat); 

       //$("#chatEntries").append(cre_div); 

       last_date=Date.now(); 
      } 


     $("#chatEntries").append('<div class="row message self"><p class="infos"><span class="pseudo">'+pseudo+'</span></p><p>' + msg + '</p></div>'); 
     //$("#chatEntries").append(cre_div); 
     last_date=Date.now(); 
    } 

    else { 

     $("#chatEntries").append('<div class="row message"><p class="infos"><span class="pseudo">'+pseudo+'</span></p><p>' + msg + '</p></div>'); 

     //$("#chatEntries").document.createElement('cre_div'); 
     last_date=Date.now(); 
    } 

    time(); 

} 
+0

, что Ваш вопрос ? –

ответ

0

Это было своего рода мне интересно попробовать, что и я actualy изменить код много надеюсь, что вы получите эту идею, так что вы идете

Date.now = function() { 
    return new Date().getTime(); 
} 

var last_group = { 
    me: false, 
    time:Date.now() 
} 
var messages_count = 0; 

function addMessage(msg, pseudo, date, me) { 
    messages_count++; 

    if(messages_count < 1){ 
     console.log('first message'); 
     createGroup(msg, pseudo, date, me); 
     last_group.me = me; 
    } else { 

     if(last_group.me == me){ 
      if(last_group.time + 10000 > Date.now()) { 
       //console.log('adding to last group');     
       addToGroup(msg, pseudo, date, me);     
      } else {     
       //console.log('creating new group', last_group.me, me); 
       createGroup(msg, pseudo, date, me); 
      } 

     } else { 

      //console.log('creating new group', last_group.me, me); 
      createGroup(msg, pseudo, date, me); 

     } 
    } 
} 

function addToGroup(msg, pseudo, date, me){ 
    $("#group-" + last_group.time).append('<div class="row message' + (me ? ' self' : '') + '">' + pseudo + '<p>' + msg + '</p></div>'); 
} 

function createGroup(msg, pseudo, date, me){ 
    last_group.time = Date.now(); 
    var html = '<div class="group" id="group-' + last_group.time + '"><div class="row message' + (me ? ' self' : '') + '">' + pseudo + ' - ' + Date.now() + '<p>' + msg + '</p></div></div><br>'; 
    //console.log(html); 
    $("#chatEntries").append(html);    
    last_group.me = me; 
} 

setInterval(function() { 
    addMessage('Hello', 'pseudo', new Date().getTime(), true); 
}, 1000); 

setInterval(function() { 
    addMessage('Hello 2', 'pseudo 2', new Date().getTime(), false); 
}, 5000); 

jsFiddle here

+0

Полезно, но я хочу, чтобы группа была отдельно от пользователей (псевдо) – Susantha

+0

Затем обновите свой вопрос, вы не упомянули об этом. Чтобы сделать то, что вы хотите, вы просто меняете 'me' в' last_group' на 'user', и если пользователь нового сообщения не тот, то создайте новую группу и добавьте' last_group.user = 'username''. Это довольно просто. Как насчет того, чтобы попробовать себя в первую очередь. – Molda