浏览器如何知道在哪里找到socket.io?

时间:2015-10-15 20:09:57

标签: javascript socket.io

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

浏览器如何知道如何从该引用中获取socket.io?我最后一次检查时,我的公共文件夹中没有socket.io.js文件。

更新:Socket.io工作正常,我只是好奇它是如何利用这条神秘路线获取客户端socket.io代码的。

感谢您的广泛答复:)

1 个答案:

答案 0 :(得分:2)

实际上,这里有一些轻微的魔力。当您安装服务器端socket.io库并通过将其传递给您的Web服务器对其进行初始化时,它会自动将路由处理程序安装到您的Web服务器中以获取/socket.io/socket.io.js的任何请求,它将为{{1}提供服务每当请求特定socket.io.js路由时,从服务器端socket.io安装目录深处为客户端设计的文件。

因此,该文件实际上并非来自所请求的确切路径(这只是安装处理程序的路径)。该文件实际上来自服务器端安装目录(/socket.io/socket.io.js内)。这样做的好处是,由于socket.io的服务器端实现和客户端实现都来自完全相同的NPM安装,因此始终保证它们是同一版本,因此您永远不会遇到问题客户端和服务器版本不同步。

供参考,以下是node_modules/socket.io提供服务的socket.io server code的相关部分:

/socket.io/socket.io.js