2015-10-07 5 views
0

Я использовал один-один чат, используя PUSHER (чат реального времени). Теперь я хочу реализовать функцию группового чата (от многих до многих). я видел некоторые из методов, каккак реализовать функцию группового чата с помощью толкателя

channel.bind('pusher:member_added', function(member) { 
    // for example: 
    add_member(member.id, member.info); 
}); 
channel.bind('pusher:member_removed', function(member) { 
    // for example: 
    remove_member(member.id, member.info); 
}); 

Но не получают, как создать группу с именем. а затем добавить участников в контакты.

Обновленный вопрос ---------------------- У меня такие же html-файлы, как указано ниже client1.html, client2.html, client3.html и связанные с тем же каналом «присутствие-пользователь», и теперь я могу видеть онлайн-членов внутри «члена» textarea, используя функцию members.each ({}).

<html> 
    <head> 
    <title>Pusher Test</title> 
    <script src="//js.pusher.com/2.2/pusher.min.js" type="text/javascript"/> 
    <script src="http://code.jquery.com/jquery-2.1.0.min.js" 
     type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      var chatdata; 
      var myuserId; 
      console.log("ready!"); 
      $('#reset').click(function(event) { 
       event.preventDefault(); 
       $('#loggs').val(""); 
      }); 
      $('#btnSendMessage').click(function(event) { 
       event.preventDefault(); 
       chatdata = myuserId+": "+$("#textchat").val(); 
       console.log("in btn chatdata ==" + chatdata); 
       if(chatdata==undefined){ 
        chatdata =""; 
       } 
       var triggered = channel.trigger('client-messagereceive', { 
        data : chatdata 
       }); 
       console.log("pusher:subscription_succeeded==>" + triggered); 

       console.log("in btn chatdata ==" + chatdata); 


       alert(count); 
      }); 
      var msgLoggs; 
      console.log("chatdata ==" + chatdata); 
      var socketId; 
      Pusher.log = function(message) { 
       if (window.console && window.console.log) { 
        msgLoggs += message + "\n"; 
        $("#loggs").val(msgLoggs); 
        window.console.log(message); 
       } 
      }; 


      var options = { 
        authEndpoint : "api/chat.json?x-api-key=06870559427d46de8789c39d50097301" 
      } 

      var pusher = new Pusher('c7afb8c403e31a7088e1', options); 

      pusher.connect(); 
      pusher.connection.bind('connected', function(data) { 
       socketId = pusher.connection.socket_id; 
      }); 

      var channel = pusher.subscribe('presence-user'); 
      channel.bind('pusher:subscription_succeeded', function(members) { 

       var membersOl; 
       channel.members.each(function(member) { 
         var userId = member.id; 
         var userInfo = member.info; 
         membersOl+=userId+" "; 
        }); 

       var count = channel.members.count; 
       var me = channel.members.me; 
        var userId = me.id; 
        myuserId=userId; 
        var userInfo = me.info; 
        var count = channel.members.count; 
        $("#member").val(membersOl) 
        console.log("count-->"+count); 
        var user = channel.members.get(userId); 
        console.log("user--->"+user.info); 

       console.log("pusher:subscription_succeeded====userid" + userId+" userinfo "+userInfo.data); 


      }); 

      channel.bind('pusher:subscription_error', function(status) { 
       if (status == 408 || status == 503) { 

       } 
      }); 
      var datafromClient2; 
      channel.bind('client-messagereceive', function(data) { 
       datafromClient2+=data.data+"\n"; 
       $("#textchat").val(datafromClient2); 
      }); 


     }); 
    </script> 
    </head> 
    <body> 
     we are heree ..... 
     <form action="" method="post"> 
      <table> 

       <tr> 
        <td>Enter your text</td> 

       </tr> 
       <tr> 
        <td><textarea name="textchat" id="textchat" rows="10" cols="80"></textarea></td> 
        <td><textarea name="member" id="member" rows="10" cols="80"></textarea></td> 
       </tr> 

       <tr> 
        <td colspan="2"><button name="btnSendMessage" id="btnSendMessage" 
          value="Send Message">Send to Message</button></td> 
       </tr> 
       <tr><td>Logger</td><td> <button id="reset">Reset </button></td></tr> 
       <tr> 
        <td colspan="2"><textarea name="loggs" id="loggs" rows="40" cols="150"></textarea></td> 
       </tr> 
      </table> 

     </form> 
    </body> 
    </html> 

Теперь вопрос, когда я создаю новую группу позволяет сказать, что имя, как «Друзья», и для этого мне нужно будет подписаться на канал позволяет сказать, что «присутствие-друзей», и теперь я хочу, чтобы добавить пользователей к этой группе из моих контактов, поэтому в этом случае, какие методы мне нужно будет использовать для добавления моих контактов в группу? Пожалуйста, помогите!

+0

Pusher не обеспечивает механизм управления группами. Вам необходимо самостоятельно создать эту функциональность, а затем контролировать доступ к каналам присутствия. Затем вы можете использовать функциональность 'members', чтобы получить список пользователей, которые находятся в сети, и получать информацию о том, что пользователи подключены к сети и переходят в автономный режим. – leggetter

+0

@leggetter ok спасибо. – Kamini

ответ

0

Образцы кода, которые вы предоставили, относятся к presence channels. Их целью является предоставление событий, когда пользователь подписывается/отписывается от канала.

Чтобы создать групповой чат, вам просто нужно разрешить нескольким пользователям отправлять сообщения (триггерные события) на одном канале. Это не связано с использованием каналов присутствия.

+0

Привет @leggetter, я обновил свой вопрос. посмотрите пожалуйста. благодаря :) – Kamini

 Смежные вопросы

  • Нет связанных вопросов^_^