hau*_*nho 39 javascript node.js socket.io
我继续得到错误/socket.io/socket.io.js 404(未找到)未捕获的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);
Run Code Online (Sandbox Code Playgroud)
和
<script src="/socket.io/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)
问题是什么 ???
欢迎任何帮助!
Amo*_*rni 66
复制socket.io.js
到公用文件夹(某些内容resources/js/socket.io.js
)不是正确的方法.
如果Socket.io
服务器正确地侦听您的HTTP
服务器,它将自动提供客户端文件http://localhost:<port>/socket.io/socket.io.js
,您无需查找或复制到可公开访问的文件夹中resources/js/socket.io.js
并手动提供服务.
代码示例
Express 3.x - Express 3要求您实例化一个http.Server以附加http.Server
到第一个
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);
Run Code Online (Sandbox Code Playgroud)
快乐编码:)
ZiT*_*TAL 10
如何为客户端查找socket.io.js
安装socket.io
npm install socket.io
Run Code Online (Sandbox Code Playgroud)
找到socket.io客户端
find ./ | grep client | grep socket.io.js
Run Code Online (Sandbox Code Playgroud)
结果:
./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js
Run Code Online (Sandbox Code Playgroud)
将socket.io.js复制到您的资源:
cp ./node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js /home/proyects/example/resources/js/
Run Code Online (Sandbox Code Playgroud)
在你的HTML中:
<script type="text/javascript" src="resources/js/socket.io.js"></script>
Run Code Online (Sandbox Code Playgroud)
似乎这个问题可能从来没有得到过回答(尽管OP可能为时已晚,我会为将来遇到它并且需要解决问题的任何人回答它).
而不是npm install socket.io
必须这样npm install socket.io --save
做,socket.io模块安装在您的Web开发文件夹中(在您的index.html或index.php所在的基本位置运行此命令).这会将socket.io安装到运行命令的区域,而不是全局安装,此外,它会自动更正/更新package.json文件,以便node.js知道它在那里.
然后将源路径更改'/socket.io/socket.io.js'
为'http://' + location.hostname + ':3000/socket.io/socket.io.js'
.
归档时间: |
|
查看次数: |
54720 次 |
最近记录: |