我正在尝试使用 Socket.io 和 Socket.io-client 使用 cloudfoundry 连接 2 个独立的 Node.js 服务器。当我使用本地运行的两个实例测试代码时,下面的 socket.io-client Node.js 代码按预期工作。当 socket.io 服务器是 cloudfoundry 时,浏览器中的一个简单的 javascript 客户端能够连接并正常工作。但是,当我尝试使用 socket.io-client Node.js 连接到在 cloudfoundry 上运行的实例时,它会以几种不同的方式失败。它要么什么都不做,尝试连接两次然后失败,要么只连接以立即断开连接。
我唯一能想到的是 cloudfoundry 上的 nginx 导致了一些问题。对我来说,浏览器中的 javascript 客户端可以连接并发送和接收数据是没有意义的,而基本相同的 Node.js 代码运行在与 Web 浏览器无法连接的同一台机器上。有什么想法,还是我应该离开 Cloudfoundry?
var socketioclient = require('socket.io-client').connect('http://someapiaddress.cloudfoundry.com');
socketclient = socketioclient.socket;
socketclient.on('connect_failed', function(){
console.log('Connection Failed');
});
socketclient.on('connecting', function(){
console.log('connecting')
});
socketclient.on('connect', function(socket) {
console.log('Connected!');
socketclient.on('message', function(data){
console.log(data)
});
socketclient.on('disconnect', function(){
console.log('disconnect')
});
});