Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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/3/html/72.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 找不到Node.js socket.io.js或未定义io_Javascript_Html_Node.js_Socket.io - Fatal编程技术网

Javascript 找不到Node.js socket.io.js或未定义io

Javascript 找不到Node.js socket.io.js或未定义io,javascript,html,node.js,socket.io,Javascript,Html,Node.js,Socket.io,我试图在我的freebsd服务器上运行node.js应用程序,但无法让socket.io库使用它。我试过包括: <script src="/socket.io/socket.io.js"></script> 这会产生一个404错误,如果我直接链接到该文件(即它在我的public_html文件夹中的位置),我会得到io not defined错误 提前感谢您的node.js应用程序仍然需要为其提供服务-它不会自动获得服务。你的服务器里有什么?应该是这样的 va

我试图在我的freebsd服务器上运行node.js应用程序,但无法让socket.io库使用它。我试过包括:

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

这会产生一个404错误,如果我直接链接到该文件(即它在我的public_html文件夹中的位置),我会得到io not defined错误


提前感谢

您的node.js应用程序仍然需要为其提供服务-它不会自动获得服务。你的服务器里有什么?应该是这样的

var app = require('express').createServer();                                    
var io = require('socket.io').listen(app);

或类似的(收听<代码>非常重要)。该位置不是磁盘上的真实位置-据我所知,socket.io库应该截取URL并为其客户端库提供服务。

在正文解析器之后添加以下内容:

, express.static(__dirname + "/public")
比如:

var app = module.exports = express.createServer(
  express.bodyParser()
  , express.static(__dirname + "/public")
);

尝试创建另一个node.js应用程序,其中包含这一行,然后使用node.js运行它

var io = require('socket.io').listen(8000);
然后在浏览器中访问
http://127.0.0.1:8000
您应该会收到友好的“Welcome to socket.io.”问候语。如果您收到此消息,那么socket.io正在运行,并将提供socket.io.js文件

我能想到的另一件可能发生的事情是,您可能没有链接到客户端文件中的备用端口。除非您正在运行端口80上运行的express上的socket.io服务器。现在,创建一个客户端文件,将socket.io的脚本源设置为

<script src="http://127.0.0.1:8000/socket.io/socket.io.js"> </script>


这应该连接到在端口8000上运行的socket.io服务器,并获取socket.io.js文件。

谢谢,这没有发生,我会考虑修复它。我很困惑。我也有同样的问题,这确实有效,但我确实想在不运行单独服务器的情况下修复它。“我能想到的另一件事是,您可能没有链接到客户端文件中的备用端口”您这么说是什么意思,我在端口3200上使用的是express,我对socket.io做了什么特殊的处理,以便它在端口3200上为客户端js文件提供服务器?