2012-02-09 20 views
6

Üniversite öğretim üyelerimden biri, dosya aktarımı için kullanılan WebSockets yazılımlarını görmenin ilginç olacağını belirtti. Base64 kullanarak bir görüntü dosyasını çözmenin ve kodlamanın mümkün olacağını düşünmekteyim, ancak WebSocket üzerinden JavaScript/CSS dosyalarını göndermek mümkün olurdu?Dosya aktarımı için WebSocket'ı kullanma

i kullanıyorum sunucu node.js, ve benim tarayıcı

cevap

8

Evet Google Chrome 16'dır. WebSockets (veya bu konu için AJAX) aracılığıyla JavaScript ve CSS gönderebilirsiniz. Ayrıca, WebSocket sunucusu, Javascript'teki herhangi bir özel Unicode karakterini kodlayan UTF-8 olduğu sürece, CSS ve JavaScript'i kodlamak zorunda kalmazsınız. (Tip 'senaryo' veya 'css' ya olduğu)

Eğer WebSocket'e aracılığıyla Javascript veya CSS aldıktan sonra, aşağıdaki mekanizmasını kullanarak bunları yükleyebilirsiniz:

function dynamic_load(type, content) { 
    var elem = document.createElement(type); 
    elem.type = (type === 'script') ? 'text/javascript' : 'text/css'; 
    elem.innerHTML = content; 
    document.getElementsByTagName("head")[0].appendChild(elem); 
} 

Yani mekanizma içinde sorun olabilir IE 8 ve öncesi ama WebSockets kullanıyorsanız, hedefinizin modern tarayıcılar olduğundan şüpheleniyorum. Sen dynamic_load fonksiyonu tarayıcınızın JavaScript konsolundan çalıştığını doğrulayabilirsiniz:

dynamic_load('script', "alert('hello world');"); 
+0

Her şeyi ve her şeyi gönderebilirsiniz. Göndermeyecek bir şey yok, hatta virüsler. – Pacerier

1

Benim node.js kütüphane gönderir dosyayı kolları ws - hatta ikili olanları. Yüklemeyi yapan örneklerden birine göz atın: https://github.com/einaros/ws/tree/master/examples/fileapi

Web sayfası öğelerini (komut dosyaları, css, resimler, vb.) Almak için web bağlantıları kullanmak yerine SPDY ile kasten kullanmamanızı öneririz. bu amaç için hazırlanmış. Node.js, bu arada spdy-desteği var (bkz. https://github.com/indutny/node-spdy).

+0

SPDY kullanımdan kaldırıldı ve yakında kaldırılacak. – Pacerier

İlgili konular