Socket.io没有初始化,也没有连接到共享主机上的节点服务器

时间:2016-08-18 03:15:21

标签: node.js socket.io

我在GoDaddy的共享主机上安装了node.js,可以运行节点应用程序。

我不确切地知道问题出在哪里,但是这里发生了什么。我运行服务器,它开始在端口上侦听(我尝试了从4900056000的范围。)

但是当客户端尝试连接时,即访问' /'在服务器上,节点是静默的,因此它不接收任何连接请求。所以这种范围缩小到socket.io。

在几秒钟内在控制台中吐出这个: socket.io-1.4.5.js:1 GET http://website.com:55872/socket.io/?EIO=3&transport=polling&t=LQRdEP9 net::ERR_CONNECTION_TIMED_OUT

我试图从cdn以及我自己的目录中获取socket.io - 没有。

这就是服务器的样子:

var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io').listen(server);

//------------- GLOBAL VARIABLES ---------------

    SERVER_PORT = 55872;

    connections = [];

//----------------------------------------------

server.listen(SERVER_PORT, "127.0.0.1");

console.log('................................................');
console.log('=> Server is listening on port: ' + SERVER_PORT);
console.log('................................................');

app.get('/', function(req, res){

    console.log('=> Loading index.html!');

    res.sendFile(__dirname + '/index.html');

});

// ----------- MIDDLEWARE ----------------------

// ----------- CONNECTIONS ---------------------

io.sockets.on('connection', function(socket){

    connections.push(socket);
    console.log('=> Client connected! Total connected: %s', connections.length);

    // Disconnect socket
    socket.on('disconnect', function(data){

        connections.splice(connections.indexOf(socket), 1);
        console.log('=> Client disconnected! Total connected: %s', connections.length);    

    });

客户端:

 $(function(){

        //--------- SOCKET INIT --------------
        var socket = io.connect('http://website.com:55872/');
});

是socket.io或节点的问题,还是我......?

2 个答案:

答案 0 :(得分:0)

GoDaddy目前不支持在共享主机上运行node.js服务器。您需要一个VPS帐户。 GoDaddy确实购买了Nodejitsu,所以他们可能会扩展他们的node.js产品,但是到目前为止你无法在GoDaddy共享主机上运行node.js服务器。

答案 1 :(得分:-1)

我有类似的问题让socket.io与express一起工作。以下是我工作的服务器代码的片段:

var express = require('express');
var app = express();

app.get('/', function(req, res) {
  // to allow cross-origin requests
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");

  //...
});

var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(process.env.PORT, process.env.IP, function() {
  console.log("Listening!");
});

io.on('connection', function (socket) {
  console.log("Got connection!");
  //...
});

它与你所拥有的略有不同,可能会有所作为。否则,您的问题可能与node.js代码无关。

这是托管在免费的Cloud9工作区上的。我还在Heroku上安装了节点服务器......您应该尝试其中一个平台,因为他们对节点有官方支持。