2011-03-04 8 views
6

Boşaltın pencere. Bir kullanıcı tarayıcı sekmesinden ayrılır veya kapanırsa, MUC'den çıkış yapmaları gerekir.ayırın Strophe Bağlantı ben strophe.js ve jQuery ve ben için jquery boşaltma durumunda kullanıcıyı odasına bir müsait olmama durumu göndermek ve kesmek için çalışıyorum kullanarak web tabanlı MUC istemcisi yazdım

Bu olayda koştuğum kodu, sayfada bulunan bir düğmesiyle test ettim, bu yüzden stanza'nın doğru olduğundan eminim. Tarayıcı penceresi kapanıyorsa, yazılımın stanza gönderirken sorun yaşadığını düşünüyorum. Burada herhangi bir geçici çözüm var mı? Ayrıca, onbeforeunload olayını da denedim (bunun tamamen tarayıcılar arası uyumlu olmadığını biliyorum), ancak bu da işe yaramıyor.

Herhangi bir tavsiye çok takdir edilmektedir!

sayesinde John

cevap

10

moduna senkronize geçmek emin olun ve disconnect() çağrı göndermeden önce flush() diyoruz. İşte bir örnektir: onbeforeunload/onunload'a bağlayabilirsiniz. (JQuery örneği)

var client = new Client; 
client.connect(); 
$(window).unload(function() { 
    client.disconnect(); 
}); 
+2

Bir yamalı Strophe.js gerekir: https://github.com/metajack/strophejs/ issue/16 –

+0

En son strophe için this.connection.options.sync = true; – CristiC

+2

connection.options.sync = true, aslında hibrit uygulamanızı relogin sırasında dondurdu. Ciddi anlamda. Küçük bir krom profilleme yaptım. Oturum kapandıktan sonra yeniden bağlandığınızda, tüm uygulamanın dondurulduğunu gösterdi. Ancak, sync = true öğesini kaldırdığımda her şey yolundaydı. Bu senkronizasyon tam olarak ne yapar? Her işlemin eşzamanlı olduğu bir senkronizasyon deseni oluşturduğunu varsayıyorum. Varsayılan asenkron, problemimi çözdü. Kafamı hala bulamıyorum. –

2

yok yamalar gerekli, yerleşik bir çözüm anda orada:

connection.flush(); 
connection._options.sync = true;  
connection.disconnect(); 
İlgili konular