【发布时间】:2014-02-17 08:35:32
【问题描述】:
我实际上在做一个小项目,我应该用 node.js、mongoDB、socket.io 和 canvas 重新创建一个绘图多人游戏。
抽屉工作得很好,服务器似乎也工作得很好。我的注册/登录/会话和数据库启动并正常工作,唯一的问题是 socket.io。当用户加入游戏室时,他可以看到抽屉和工具,但没有连接。为什么 ?浏览器找不到socket.io.js。
我做了什么:
我验证它是否已安装,它是使用 npm install socket.io 安装的。 我在打开服务器时检查了服务器是否正在启动它:在我的控制台中出现“socket.io started”。 我检查了我的 HTML 代码,这里是:
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
根据数十亿的教程/开发站点/帮助主题,这应该是可行的。但事实并非如此。打开浏览器的控制台时,我得到了这个:
X GET http://localhost:1337/socket.io/socket.io.js NOT FOUND.
我不知道问题出在哪里,我无法解决这个问题,这让我非常头疼..所以我在这里。
提前感谢您的帮助! :)
【问题讨论】:
-
你有 nodejs 正确地提供静态文件吗?你在哪里为 socket.io 提供服务?
-
我的项目的根目录是 server.js 文件。在变量中,我得到了 var io = require('socket.io').listen(server);然后,当用户到达需要 socket.io 的页面时,服务器会这样做: io.sockets.on('connection', function(socket) {console.log('Client connected'); })静态文件,我觉得也不错,我得到了这个:.use('/public', express.static(__dirname + '/public'))
-
该文件不是由静态中间件提供的,而是由
socket.io模块本身提供的。可能是配置错误,能把初始化Express和socket.io的代码展示一下吗? -
express = require('express'), server = express(), io = require('socket.io').listen(server), [其他用于 DB 模型等的东西] 我是对此很新,对网络开发不是很好,我可能(显然?)错误配置了一些东西:)
-
socket.io.js not found 的可能重复项