Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript socket.io.js文件在哪里?_Javascript_Sockets_Socket.io - Fatal编程技术网

Javascript socket.io.js文件在哪里?

Javascript socket.io.js文件在哪里?,javascript,sockets,socket.io,Javascript,Sockets,Socket.io,我使用的是socket.io版本6.9.0 <script src="/socket.io/socket.io.js"></script> var socket= io(); var socket=io(); 当我有此代码时,我可以成功地连接到套接字服务器。但是我在本地目录“/socket.io”中找不到socket.io.js文件 我刚刚发现socket.io.js在\socket.io\node\u modules\socket.io client\dist目

我使用的是socket.io版本6.9.0

<script src="/socket.io/socket.io.js"></script>
var socket= io();

var socket=io();
当我有此代码时,我可以成功地连接到套接字服务器。但是我在本地目录
“/socket.io”
中找不到
socket.io.js
文件

我刚刚发现
socket.io.js
\socket.io\node\u modules\socket.io client\dist
目录中。那么我的
html
文件如何在
/socket
中找到
socket.io.js

另外,如何
var socket=io()即使没有服务器地址和端口号,代码也可以与服务器连接?

这将使客户端从其下载的相同来源加载脚本。例如
localhost
。这意味着,在本例中,目标URL是
http://localhost:PORT/socket.io/socket.io.js
。这与该文件的位置无关,因为有一种Web服务器提供该脚本(->您的本地主机)。该文件可能位于完全不同的目录中

发生的情况是,您的客户端尝试从
http://localhost:PORT/socket.io/socket.io.js
。服务器现在的功能取决于您的服务器体系结构和配置。例如,许多prod环境使用
反向代理
,如下所示:

 location /socket.io/ {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       proxy_http_version 1.1;
       proxy_set_header Host $host;
       proxy_pass http://localhost:3011/socket.io/;
 }
在本例中,这将把请求路由到端口
3011
上的另一台服务器(在您的根服务器上“本地”运行)。有一个节点应用程序(socket.io服务器)正在运行,它知道现在要做什么:为
socket.io.js
文件提供服务

完成此操作后,
var socket=io()
将导致另一个请求(您可以在浏览器开发工具中观察到),然后
socket.io
服务器知道有一个传入的
connect
请求

结论: 这取决于socket.io是如何实现的,您最终可以在哪里找到源文件。许多现代客户端使用
react
Angular
,将这些第三方源捆绑在一起,并在初始请求中下载此捆绑包。在这种情况下,您永远不会在客户端上找到
socket.io.js
。 如果您使用
标记加载脚本(就像您所做的那样),它取决于目标URL和它后面的服务器,在哪里可以找到脚本

希望这能回答你的问题