你好,我正在实现一个WebRTC多对多视频会议系统,目前已经完成了,我使用socket.IO作为信令服务器,所有一切都很顺利。我使用EnterpriseDB Apache在端口(8081)上提供我的.html文件,并使用Node.js在端口(3000)上提供socket.IO。在本地主机中运行得非常好,没有错误。我的问题是如何通过公共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.js net::ERR_CONNECTION_REFUSED Uncaught ReferenceError: 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
连接到你的计算机。 - jcaron