Node.js Socket.io工作吗?我已经试着让它工作了两周了

Node.js Socket.io工作吗?我已经试着让它工作了两周了,node.js,express,socket.io,Node.js,Express,Socket.io,我不熟悉socket.io。听起来不错,但对我来说什么都不管用 下面列出了两个文件:app.js和index.html。我把它们都放在同一个目录里。Icd到该目录并运行: node app.js 然后我进入浏览器并访问http://hostname:8888我得到了: Cannot GET / 所以我尝试http://hostname:8888/index.html并获取: Cannot GET /index.html 为什么它不起作用,为什么我会 npm ERR! invalid: so

我不熟悉
socket.io
。听起来不错,但对我来说什么都不管用

下面列出了两个文件:
app.js
index.html
。我把它们都放在同一个目录里。I
cd
到该目录并运行:

node app.js
然后我进入浏览器并访问
http://hostname:8888
我得到了:

Cannot GET /
所以我尝试
http://hostname:8888/index.html
并获取:

Cannot GET /index.html
为什么它不起作用,为什么我会

npm ERR! invalid: socket.io-client@0.9.11
请找个人帮忙。非常感谢。


你写你的
app.js
index.html

我把它们都放在同一个目录里

但是你的代码说:

这基本上意味着:“我的
index.html
文件应该在名为
public
的目录中找到,该目录可以在与
app.js
相同的目录中找到。”。因此,它需要这样的目录结构:

directory/app.js
directory/public/index.html
因此,要么创建一个
public
目录并将您的
index.html
移动到那里,要么告诉
express.static
在与
app.js
相同的目录中找到它,如下所示:

app.use(express.static(__dirname));
(尽管,@josh3736在评论中指出,这会带来安全问题,因此您不希望在任何生产代码中使用该解决方案!但出于测试目的,这是可以的。)

至于你的另一个问题,不清楚是什么导致了这个错误。请再添加一点
npm
输出


但是,如果要从浏览器运行
socket.io
客户端,则不需要安装
socket.io客户机
包,因为它已经是
socket.io
包的一部分(
-client
包用于从节点本身实现客户端).

我强烈建议不要使用
express.static(uu dirname)
,因为您将向公众提供应用程序的服务器端源代码(app.js)。Socket.io是否要求打开除您正在侦听的端口之外的其他端口?@user1532576不,它可以在HTTP端口上进行复制(
888
)是的,当然,Socket.IO可以工作。
npm ERR! invalid: socket.io-client@0.9.11 /home/username/node_modules/socket.io-client
npm ERR! not ok code 0
app.use(express.static(__dirname + '/public'));
directory/app.js
directory/public/index.html
app.use(express.static(__dirname));