【发布时间】:2016-02-09 11:56:31
【问题描述】:
我有一个使用 socket.io 的 node.js 服务器。这个想法是允许两个不同的 html 文件通过这个服务器相互传递信息。在 1.0 版发布之前,socket.io 0.9.16 版一切都很好。现在,我在客户端和服务器端都收到了一些错误,最明显的(对我来说,因为我是新手)是我在启动本地托管的 server.js 文件并尝试时发现的 ERR_NAME_NOT_RESOLVED 错误通过客户端 html 连接到它。
当我在谷歌浏览器中打开控制台时,我发现这个错误每隔一秒左右就会再次打印到控制台:
GET http://file/socket.io/?EIO=2&transport=polling&t=1406247171961-0 net::ERR_NAME_NOT_RESOLVED
以下是我的 html 和 server.js 文件以及我的 html 文件用于连接服务器的 js 文件中可能出现问题的地方的 sn-ps。
index.html
我认为这段代码是从 localhost 服务器获取 socket.io 客户端代码的。这是我可能认为我有问题的第一个地方
<script src="http://localhost:4000/socket.io/socket.io.js "></script>
另外,下面是我导入用于连接服务器的 index.js 文件的地方
<script type="text/javascript" src="scriptsTeacher.js" ></script>
-
server.js
这段代码(根据我的来源)应该在 localhost 上设置一个服务器,端口为 4000,客户端可以连接到该服务器并发送/接收信息
var io;
io = require('socket.io').listen(4000);
io.on('connection', function(socket)
{
console.log("user connected");
});
-
index.js
此代码由 index.html 使用,它使用 socket.io 连接到侦听端口 4000 的服务器。
var socket = io.connect('localhost:4000');
-
目前,我可以找到两个明显的错误。它们可能不是问题的根源,但就我有限的调试经验所能承受的范围而言。
ERR_NAME_NOT_RESOLVED: (注意:我查看过socket.io ERR_NAME_NOT_RESOLVED,它并不完全有用,因为该用户使用 http:\\ 而不是 http:// 有错字) .如前所述,在 Google Chrome 中打开 index.html 并访问控制台时,我收到多个 ERR_NAME_NOT_RESOLVED 错误。
访问localhost:4000时没有“Welcome to socket.io”消息我确定应该有这样的消息。请注意,没有 404 错误,当我启动服务器时,我可以访问该网页,但它是空白的。如果服务器没有运行,那么我会收到“找不到网页”消息。
我的问题是:有什么我没有做但应该做的事情吗?正如我所说,我是新手,在互联网上四处寻找之后,我怀疑有一些服务器(HTTP、Express、Express 3/4?)我没有建立。但是,值得注意的是,代码在 ver0.9.16 中的工作方式是(使用从我的代码中删除的 .socket() 和 .listen() 函数以迁移到 ver1.0)。如有遗漏,我会尽我所能尽快提供。
-
我正在使用:
Macintosh 操作系统 10.6.8
谷歌浏览器版本 36.0.1985.125
socket.io ver1.0
node.js v0.10.29
【问题讨论】:
标签: socket.io