socket.io/socket.io.js卡在(挂起)状态 - Node.js

4

每当我检查/ socket.io / socket.io.js文件是否加载到我的网页上时,它都会显示(pending),一段时间后会显示(failed) net::ERR_CONNECTION_REFUSED

我一直在查看其他帖子并尝试一些东西。

我尝试使用<script src="/socket.io/socket.io.js"></script><script src="http://127.0.0.1:8080/socket.io/socket.io.js"></script>

我的原始代码包括<script src="http://10.0.0.199:8080/socket.io/socket.io.js"></script>其中10.0.0.199是运行node.js和mongoDB的服务器。

我的server.js文件的完整代码如下:(此文件启动socket.io

var mongo = require('mongodb').MongoClient,
    client = require('socket.io').listen(8080).sockets;
    console.log('info - socket.io started');

你是否正在尝试将Node.js脚本导入到Web浏览器中? - waders group
2个回答

1
  1. 不要尝试在网页上导入Node JS脚本
  2. 您无法直接使用Web浏览器中的socket进行游戏。目前,Web浏览器仅支持Websockets。

我正在尝试跟随一个教程(https://www.youtube.com/watch?v=GkXQEwHn2nA),它告诉我应该这样做... 实际上对他来说确实有效。 - Chris
在那个教程中,那个人试图从http://127.0.0.1:8080/socket.io/socket.io.js获取js,而不是从http://127.0.0.1/socket.io/socket.io.js获取。这意味着他正在使用端口8080的node服务器,因此js文件将由node js编译,而不是由浏览器编译。但是你正在从apache服务器获取它,所以该文件只是简单的Js,将直接由浏览器编译。 - waders group
我其实尝试过那样做,但是我忘记添加了。 - Chris

1

显然我的防火墙再次成功地阻止了 8080 端口。

我使用了 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT -m comment --comment "Socket.io port" 命令在防火墙上打开了该端口,但并没有起作用。我最终通过服务器的图形界面打开了该端口。

感谢大家的帮助,我希望这可以帮助未来遇到类似问题的人,因为这真的很困惑人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接