错误连接拒绝http://localhost:3000/socket.io/socket.io.js.
ERR_CONNECTION_REFUSED http://localhost:3000/socket.io/socket.io.js
Ciao,我正在实现一个webRTC多对多视频会议系统,实际上,我已经实现了,我正在使用套接字。IO作为信号服务器,一切都非常顺利,我使用EnterpriseDB Apache在端口(8081)上提供.html文件,使用Node.js提供套接字。IO在端口(3000)上,它在localhost中运行得很好,没有错误,我的ISSUE正在使用我的公共IP进行外部访问,我正在与我的朋友和这些浏览服务进行测试:www.browserstack.com和www.browserling.com(试用版)。
-
在www.browserstack.com上,无论是mozilla 42还是chrome 47 ,一切都很好
-
在www.browserling.com上,我得到了这些错误
Firefox 41:ReferenceError:io未定义
Chrome 45:加载资源失败http://localhost:3000/socket.io/socket.io.jsnet::ERR_CONNECTION_REFUSED未捕获引用错误:未定义io
-
和我的朋友们,我遇到了与www.browserling.com相同的问题,但他们使用最新的浏览器版本(Chrome 47和Firefox 42)连接到我的PC服务器。
我认为这不是浏览器版本的问题,问题是提供socket.io.js文件,最后,这是我的代码:
它展示了解决这个问题的重要内容:
///NODE.JS DIRECTORY
////////////////////serverside.js
var port = 3000;
var io = require('socket.io').listen(port);
io.sockets.on('connection', function (socket){.........}
///APACHE DIRECTORY
////////////////////clientside.js
//Connect to signalling server
var socket = io.connect("http://localhost:3000");
////////////////////avq.html
<!DOCTYPE html>
<html lang="es">
<head><meta charset="UTF-8">
</head>
<body>
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script src="js/clientside.js"></script>
</body>
</html>
如果有人想尝试,这是我的服务器URL:http://201.209.104.33:8081/webrtcexamples/avq.html
localhost
是一个特殊的主机名,它指向与请求它的计算机相同的计算机。因此,任何使用与您不同的计算机并试图连接到localhost
的人都会尝试连接到自己的计算机,而不是您的计算机。由于服务器没有在他们的计算机上运行,他们显然会收到一个"拒绝连接"的错误。
您需要将localhost
替换为全局可访问的地址(域名或IP地址)。这也意味着你需要让路由器将你的外部IP地址映射到运行该端口服务器的计算机上(否则他们将连接到你的路由器,而不是你的服务器)。
尝试io.connect("http://201.209.104.33:3000");
而不是io.connect("http://localhost:3000");
编辑
您需要在正在使用的服务器上运行套接字。因此,如果你在电脑上运行它,你的朋友电脑不会看到它,因为当它连接到localhost
时,它会尝试连接到他们电脑的localhost
。而不是你的。
我以前也有同样的问题。你需要在服务器上运行它,这样每个人都可以连接到它。
- 如何使用Socket.io将命令从客户端发送到服务器
- Socket.IO未定义变量
- Socket.io on Mozilla Rhino
- socket.io发射三次
- AngularJS$q承诺使用socket.io
- 如何知道使用socket.io订阅/取消订阅频道
- 通过socket.io发射给特定的人
- 通过socket.io从浏览器流式传输视频
- 通过node.js和socket.io向特定用户发送数据
- 如何使用socket.io在meanjs项目中配置jshint
- 如何使用Socket.io和Node.js开发大型聊天应用程序
- RangeError nodejs socket.io
- 通过node.js和socket.io在两个用户之间发送消息
- 使用socket.io更新express实时视图
- socket.io cookie解析握手错误
- 如何在同一端口上使用ExpressJS和Socket.io
- 使用cordova快速nodejs socket.io
- 通过socket.io与heroku应用程序进行通信
- Socket.io客户端在使用名称空间时忽略端口[Bug?]
- Node.js-socket.io-对io.sockets的引用突然未定义