当尝试将我的网站和(nodejs + express + socket.io 服务器)从 socket.io 0.9 升级到 1.0 时,立即遇到了一个问题:socket.io 客户端正在尝试连接,而不是在 socket.io 服务器正在侦听的端口上,但在使用客户端的网页正在运行的端口上。不用说 - 一切都在 socket.io 0.9 上运行了多年,没有任何问题......
所以,特别是(一切都在 localhost 上运行): -- node.js 服务器:
var app = express();
var svr = http.Server(app);
require('socket.io').listen(svr);
svr.listen(3000);
-- index.html(由另一个 node.js 进程在端口 80 上提供服务):
<script src="https://cdn.socket.io/socket.io-1.0.0.js"></script>
<script>
var socket = io('http://localhost:3000');
socket.on('test', function (data) {
console.log(data);
});
</script>
- 当我在 chrome 中运行此网页时,我在 chrome js 控制台中看到错误消息(该消息每秒左右重复一次):
**GET http://localhost:80/socket.io/?EIO=2&transport=polling&t=1401472842589-6 404 (Not Found) socket.io.js?_dc=1401472822276:2604**
如您所见,socket.io 客户端库正在尝试连接到同一端口上的套接字服务器,因为网页正在运行 - 端口 80 - 而不是使用 websocket 端口 - 端口 3000。
同样,当我使用 socket.io 0.9 版运行相同的代码时 - 一切正常。
有什么帮助吗?