Node.js托管与Socket.io客户端支持?

时间:2012-06-18 21:00:28

标签: node.js socket.io

我创建了一个socket.io客户端应用程序,它连接到我的socket.io服务器,然后他们沟通他们需要的任何内容。

当我在一台机器本地或甚至两台不同的本地机器上进行本地操作时,一切正常。所以我尝试在cloud9部署客户端,并且不断抛出此错误:

net.js:540
    connectReq = self._handle.connect(address, port);
Error: No local connects allowed for security purposes
    at connect (net.js:540:31)
    at net.js:607:9
    at Array.0 (dns.js:88:18)
    at EventEmitter._tickCallback (node.js:190:38)

客户端代码是,其中[ip-address]是我的服务器IP地址

var io = require('socket.io-client'),
socket = io.connect('[ip-address]', {
    port: 1337
});

有没有办法在c9.io上运行这样的socket.io客户端?

他们是否因为this article阻止了它?

是否有任何免费的node.js托管解决方案,其中一个可以运行如上所述的socket.io客户端应用程序?

感谢。

3 个答案:

答案 0 :(得分:3)

Nodejitsu目前是免费的node.js托管解决方案,其中一切正常(包括socket.io

答案 1 :(得分:3)

根据您的需要,您可以创建一个免费的Heroku帐户。您无权访问数据库,并且资源有限,但如果应用程序足够小且足够高效就足够了。

答案 2 :(得分:1)

OpenShift使用端口8080和Heroku 3000。

客户端 代码必须如下:

// Wrong!:
// mySocket = io.connect(host, port);

// Right:
mySocket = io();
mySocket.on(....);

服务器 代码必须如下所示:

var express = require('express'),
    app = express(),
    server = require('http').Server(app),
    io = require('socket.io')(server);

app.use(express.static('path/to/public/html'));
server.listen(8080); // OpenShift 8080, Heroku 3000

io.on(...);

https://devcenter.heroku.com/articles/node-websockets#create-a-socket-io-client