Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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/socket.io.js位置在哪里?_Javascript_Node.js_Socket.io - Fatal编程技术网

Javascript socket.io/socket.io.js位置在哪里?

Javascript socket.io/socket.io.js位置在哪里?,javascript,node.js,socket.io,Javascript,Node.js,Socket.io,我正在使用socket.io制作聊天应用程序。根据网站文档,我必须提供一个javascript文件源,它是: <script src="/socket.io/socket.io.js"></script> 而我的socket.io文件夹位于node_modules下,另一方面socket.io文件夹甚至不包含socket.io.js,socket客户端文件夹包含socket.io.js。我试过其他文档,但找不到任何解释。任何人都可以解释一下它是如何在错误的路径下正常

我正在使用socket.io制作聊天应用程序。根据网站文档,我必须提供一个javascript文件源,它是:

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


而我的socket.io文件夹位于node_modules下,另一方面socket.io文件夹甚至不包含socket.io.js,socket客户端文件夹包含socket.io.js。我试过其他文档,但找不到任何解释。任何人都可以解释一下它是如何在错误的路径下正常工作的。

当你实例化一个
socket.io
服务器时,它会自动在
/socket.io/socket.io.js
地址提供客户端文件,而不需要你提供任何东西

因此,您可以选择是从此文件还是从模块导入
io

使用socket.io自动提供的socket.io.js
可能重复Hey MadWard,您知道为什么有时必须使用http:IPAddress:PORTNUMBER/socket.io/socket.io.js而不是/socket.io/socket.io的区别吗。js@m00ncake:使用socket.io时,您可以在节点的HTTP服务器上、Express上或单机版上使用它。在Http或express之上使用时,该文件将在同一Http服务器上、同一端口上可用,因此不必指定其路径。但是,如果您单独运行socket.io,它将启动另一个http服务器来服务请求,您需要指定到它的路径。通常,每当socket.io在与主http服务器不同的http实例上运行时,都需要指定其路径。这很奇怪,就像我在ubuntu上尝试的代码一样,没有问题,我可以将其用作
/socket.io/socket.io.js
,但在使用相同代码的windows中,我必须将其指定为
http://localhost:PORTNUMBER/socket.io/socket.io.js
。你知道原因是什么吗?我在http上使用了它,并将其包装在express上。看起来很奇怪,会发生这样的事情。在windows上,Id获取
未能加载资源网::err_文件\u未找到
错误。我通过使用http指定路径来修复它。
<script src="/socket.io/socket.io.js"></script>
<script>
  const socket = io();
</script>
const io = require('socket.io-client');
// or with import syntax
import io from 'socket.io-client';
const socket = io();