javascript - 使用 WebSocket 进行文件传输

标签 javascript websocket

我的一位大学讲师指出,看到 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/

相关文章:

javascript - 在 Windows 8 中更改视频标签的来源

javascript - 加载数据时,Angular 的 Resource Promise 不会重新呈现

javascript - data.forEach 不是一个函数

javascript - 当用户与 Node.js 服务器断开连接时删除数组项

linux - 如何从 linux 命令行向我的 socket.io websocket 发送消息?

javascript - 选择 onchange 选项时在 anchor 标记中显示值

javascript - HTML - 打印页面不检索 CSS

firefox - 带有Firefox的WebWorkers和WebSockets

sockets - Websocket 或 Http 来开发移动应用程序?

c# - 无法使用 Socketcluster V2 对 Coinigy Exchange websocket ticker api 进行身份验证