我实际上正在开发一个小项目,我应该用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.
我不知道问题出在哪里,我无法弄明白,这让我头疼不已。所以我在这里。
提前感谢您的帮助! :)
答案 0 :(得分:46)
根据评论中的代码,您没有使用正确的变量来初始化socket.io
。
试试这个:
var express = require('express');
var app = express();
var server = app.listen(1337);
var io = require('socket.io').listen(server);
...
因此,不应在Express应用程序实例上socket.io
'监听',而应该监听app.listen(...)
返回的内容(恰好是http.Server
个实例)。