Alternatif Socket.io CDN kullanabileceğiniz koduna <script src="http://yournodeserver/socket.io/socket.io.js"></script>
koymak . Dolayısıyla Emmerman, komut dosyası etiketini istemci HTML kodunuza eklemeniz gerektiğini söylerken haklı ise, arka tarafınız aşağıdaysa öğe yüklenmez. Bir seçenek de, socket.io kullanmaya başlamadan önce io için kontrol eden bir istemci tarafı JS komut dosyası yazmanızdır. Eğer mevcut değilse (undefined/null), ya koşullu olarak "server down" gibi bir şey gösterebilir ya da benim durumumda, sunucu geri yüklenene kadar düzenli olarak kontrol etmeye devam eden bir zamanlayıcı ayarlayacağım.
[Update 2] kadar, komut etiketini dahil io
nesnenin mevcudiyetini kontrol etmek için olan ve 10 saniye (setTimeout
kullanılarak) sonra window.location.reload() yaparak sona erdirilmiş (sonunda umutla komut dosyası yüklü sahipliği yapan ve io
var, bundan sonra soket sunucusuna bağlanabiliyorum.)
[UPDATE] Komut dosyasını bir html komut dosyası etiketi kullanmak yerine ajax çağrısı ile yüklüyorum. Sonra zamanlayıcı ile senaryo yüklenirse periyodik olarak kontrol ediyorum - sonunda sunucu geri yüklendiğinde/yeniden başlatıldığında olacak. jQuery ref komutları dinamik olarak yüklemek için: http://api.jquery.com/jQuery.getScript/
Bu durumu denedim, sorunu çözmedi. – Shawn
@Shawn Dosyaların sırası sorun olabilir. Harici js dosyanız socket.io.js'den sonra alınmalıdır. –
400 hatasım var. – Keith