使用 socket.io 时如何发送文件(html,js,css和资源)

How do you send files (html, js, css and resources) when using socket.io?

本文关键字:js css 资源 html io socket 文件 何发送 使用      更新时间:2023-09-26

我正在尝试创建一个Web应用程序,该应用程序让服务器以时间间隔更新浏览器页面上的html材料 - html幻灯片。

我有一个文件结构如下:

项目:

- node_modules
- 应用.js
- 索引.html- 包.json
-幻灯片
-- slide_0
-- 页.html
---图像
----一些.jpg文件
---.js
----脚本.js
---风格
----风格.css
-- slide_X ...等。

我现在拥有的是使用 fs.readFile(__dirname + "slides/slide_0/page.html") 向客户端发送字符串表示形式的可能性,并在回调中保存字符串并在 socket.on('connection') 处发出。

目标是在索引中有一个div.html/client,我可以在其中附加页面中的所有代码.html(即页面.html不需要完全格式化,<p> Hello World </p>就足够了)。另外,我希望页面.html能够拥有自己的.js.css和资源(如上面的文件结构所示)。

可以在 html 中包含导入(link src="..."script src="..."),我可以将其附加到div,它只是一个字符串。但是,我不知道如何使用资产文件(.js.css.jpg)。

我正在使用Express,但我不是很擅长它,就像 socket.io 一样。

  • 那么,如何将所需的文件发送给客户端?
  • 我用什么方式发送 html+文件?
  • 其他结构会更好吗?例如,完全格式化的 HTML。

谢谢!

我找到了答案和一个大错误,这使得它难以工作。

因此,我可以使用jquery .empty()div,然后将读取的html文件附加为字符串表示。调试时,我发现浏览器尝试执行的GET不正确,这就是整个错误。

目前,我有一个接受所有 GET 的快速处理。但是,在页面中.html我使用了相对于其文件结构的 srcs 和 refs - 这必须修改,以便它从节点服务器基础开始,而不是 html-file-structure-base。

因此,使用 socket.io 发送代码(字符串格式)并将其附加到现有 HTML 中没有问题。只要确保服务器允许访问源文件并且网址正确即可!