无法获得socket.io.js

时间:2014-01-26 15:10:00

标签: node.js express socket.io

我实际上正在开发一个小项目,我应该用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.

我不知道问题出在哪里,我无法弄明白,这让我头疼不已。所以我在这里。

提前感谢您的帮助! :)

1 个答案:

答案 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个实例)。