2016-03-29 16 views
0

Twilio IP mesajlaşma örneğini kullanarak bir başlangıç ​​noktası olarak basit bir sohbet yazdım. Fikir, çeşitli müşteriler ve yönetici arasında özel kanallara sahip olmaktır. Her müşterinin yönetici ile ayrı bir özel kanalı olacaktır. Yönetici, belirli bir müşteriyle sohbet etmek için hangi kanalın açılacağını/abone olacağını seçebilir.Twilio ip mesajlaşma, kanaldan çıkmak için nasıl yapılıyor

Şu anda karşı karşıya olduğum konu, daha önce abone olduğum kanalın aboneliğini iptal edemem.

  1. üzerine tıklayın "Yönetici (yönetici1)" giriş: http://test.verbery.com/

    Sorunu yeniden oluşturma adımları: Burada

    yönetici, istemci (test1) ve istemci (dnm2) olarak giriş link admin olarak
  2. Yeni açılan yönetici sohbet sayfasında, bu kanala abone olmak ve mesaj almak için sol taraftaki panelde "[email protected]" kanalını tıklayın.
  3. Ana sayfada, istemci olarak giriş yapmak ve bir istemci olarak [email protected] kanalına katılmak için "İstemci (test1)" seçeneğini tıklayın.
  4. Yönetici'den istemciye (test1) ve istemciden (test1) yöneticiye ileti gönder.
  5. Yönetici sohbetinde bu yeni kanala abone olmak ve başka bir istemciyle (test2) sohbet etmek için [email protected] kanalına tıklayın; İstemci olarak giriş yapın (test2) ve yönetici ile sohbet edin.
  6. Sorun şu ki: [email protected] adresinden hala ileti alıyorsunuz - iletileri bir [email protected] istemcisi olarak göndermeyi deneyin. Kanalı [email protected] abone olduğunda, [email protected]

Teknik detaylar değil çıktınız: Bir etkinliği kullanılan bir kanala abone olmak için "onMessageAdded" Gelen mesajları dinlemek için Bu kanal için:

// Listen for new messages sent to the channel 
personalChannel.on('messageAdded', function(message) { 
    printMessage(message.author, message.body); 
}); 

Ben unbind('onMessageAdded') ve off('onMessageAdded') denedim mesajlar çıkmak ama çalışmıyor, js konsol diyor ki: unbind (veya kapalı) bir işlev değil.

Kanaldan nasıl çıkılacağına dair herhangi bir fikir var mı? peşin

sayesinde Dmitry böyle

+1

Sanırım bu 'personalChannel.leave() ' –

cevap

3

Twilio geliştirici evangelist burada.

Bob Sünger doğru, düzgün bir şekilde bırakmak için leave()on the channel numaralı telefonu aramanız gerekir. Eğer kanala bağlı kalmak, ancak gelen olaylardan dinlemeyi durdurmak isteyen varsa

personalChannel.leave(); 

, kendi dinleyici kurtarabilir miyim. Bunu, off veya unbind yerine removeListener kullanarak yaparsınız. Bu Node.js EventEmitter API izler.

personalChannel.removeListener("messageAdded"); 

bu hiç yardımcı olursa haber verin.siz veya abonelik iptali kanal bırakmak istemiyorsanız

1
personalChannel.on('memberLeft', function(member) { 
    printMessage(member.identity + 'has left the channel.'); 
}); 

şey?

+0

Yardım etmeye çalıştığınız için teşekkürler! Söz konusu asıl üyeyi iptal etmek yerine, başka bir üye kanaldan aboneliği iptal ettiğinde tetiklenen olayları dinler. – philnash

1

, sen kanalda çıkarma işleminde tüm olay bunu yapabilirsiniz: i kanalları arasında geçiş yaptığınızda

activeChannel.removeAllListeners(); 

ben bunu.