我的一位大学讲师指出,看到 WebSockets 用于文件传输会很有趣。我想可以使用 base64 对图像文件进行解码和编码,但是是否可以通过 WebSocket 发送 JavaScript/CSS 文件?
我使用的服务器是 Node.js,我的浏览器是 Google Chrome 16。
最佳答案
是。您可以通过 WebSockets(或 AJAX)发送 JavaScript 和 CSS。您也不需要像对图像那样对 CSS 和 JavaScript 进行 base64 编码,只要 WebSocket 服务器正确使用 UTF-8 编码 Javascript 中的任何特殊 Unicode 字符即可。
通过 WebSocket 接收到 Javascript 或 CSS 后,您可以使用以下机制加载它们(其中类型为“script”或“css”):
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);
}
该机制在 IE 8 及更早版本中可能有问题,但由于您使用的是 WebSockets,我怀疑您的目标是现代浏览器。您可以从浏览器的 Javascript 控制台验证 dynamic_load 函数是否正常工作:
dynamic_load('script', "alert('hello world');");
关于javascript - 使用 WebSocket 进行文件传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220144/