找不到node.js /socket.io/socket.io.js

我继续得到错误/socket.io/socket.io.js 404(未find)未捕获的ReferenceError:io未定义

我的代码是

var express = require('express'), http = require('http'); var app = express(); var server = http.createServer(app); var io = require('socket.io').listen(server); server.listen(3000); 

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

问题是什么 ???

任何帮助,欢迎!

socket.io.js复制到公共文件夹(如resources/js/socket.io.js )不是正确的方法。

如果Socket.io Server正确地侦听到HTTP服务器,它将通过http://localhost:<port>/socket.io/socket.io.js自动提供客户端文件。 你不需要find它或作为resources/js/socket.io.js和手动提供它在公共可访问的文件夹中复制。

代码示例
Express 3.x – Express 3要求您首先实例化一个http.Server以将socket.io附加到

 var express = require('express') , http = require('http'); //make sure you keep this order var app = express(); var server = http.createServer(app); var io = require('socket.io').listen(server); //... server.listen(8000); 

快乐编码:)

看来这个问题可能从来没有被回答过(虽然对于OP来说可能为时已晚,我会回答以后遇到的任何人,并且需要解决这个问题)。

而不是做npm install socket.io你必须做npm install socket.io --save所以socket.io模块被安装在你的web开发文件夹(运行这个命令在基地位置/你的index.html或索引。 PHP是)。 这会将socket.io安装到运行该命令的区域,而不是全局安装,另外还会自动更正/更新您的package.json文件,以便node.js知道它在那里。

然后将源path从'/socket.io/socket.io.js'更改为'http://' + location.hostname + ':3000/socket.io/socket.io.js'

如何find客户端的socket.io.js

安装socket.io

 npm install socket.io 

findsocket.io客户端

 find ./ | grep client | grep socket.io.js 

结果:

 ./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js 

将socket.io.js复制到您的资源中:

 cp ./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js /home/proyects/example/resources/js/ 

在你的html:

 <script type="text/javascript" src="resources/js/socket.io.js"></script> 

…“你可能想知道/socket.io/socket.io.js文件来自哪里,因为我们既没有添加它,也没有在文件系统上存在,这是io.listen所做的一部分。它在服务器上创build一个处理程序来为socket.io.js脚本文件提供服务。“

从本书的Socket.IO实时Web应用程序开发(第56页)

虽然这与OP没有任何关系,但如果在维护别人的代码时遇到此问题,则可能会发现问题是由编码器设置io.set('resource', '/api/socket.io'); 在应用程序脚本中,在这种情况下,您的HTML代码将是<script>type="text/javascript" src="/api/socket.io/socket.io.js"></script>