我创建了一个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客户端应用程序?
感谢。
答案 0 :(得分:3)
答案 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