使用 html 在脚本标签中包含 socket.io

Zai*_*ami 0 html javascript sockets node.js

html长期使用时,我们曾经在html页面的同一文件夹或任何其他文件夹中包含调用某个文件的脚本标签,但我们必须包含它的确切来源,例如:

<script src = "the source of the file and its name"></script>

使用socket.io网站,有index.html文件,脚本标签是这样的:

<script src="/socket.io/socket.io.js"></script>

但实际上socket.io.js文件的真正来源在节点模块中,即使网站运行良好,如果我包含此文件的真实来源,网站也会崩溃。

我真的很好奇这种奇怪情况的原因,请有人给我解释一下!

Nik*_*ppa 5

网站崩溃是正确的,因为您的 Socket.IO 服务器将处理提供正确版本的 Socket.IO 客户端库;你不应该从其他任何地方使用一个。

这个怎么运作?

您将 HTTP 服务器包装在 Socket.IO 中,如下所示:

var io = require('socket.io')(http);
Run Code Online (Sandbox Code Playgroud)

拦截对“/socket.io/socket.io.js”的请求并自动发送适当的响应。这就是为什么<script src="/socket.io/socket.io.js"></script>有效而其他人无效的原因。

意思是如果服务器正在运行,socket.io.js应该随时可用。