2014-10-05 95 views
0

上我有一个问题,我和的NodeJS设置SocketIO我的服务器, 上我想通过做和的NodeJS服务器SocketIO

VAR插座= io.connect(“http://domain.com:8070”)访问HTTP端口; 可悲的是这将返回ERR_CONNECTION_TIMED_OUT

这里是我的服务器:

var app = require('http').createServer(handler) 
    , io = require('socket.io').listen(app, { log: false }) 
    , fs = require('fs'); 

var mysocket = 0; 
var socket = 0; 
app.listen(8070); 

function handler (req, res) { 
    fs.readFile(__dirname + '/app/tpl/skins/habbo/client.php', 
    function (err, data) { 
    if (err) { 
     res.writeHead(500); 
     return res.end('Error loading index.html'); 
    } 
    res.writeHead(200); 
    res.end(data); 
    }); 
} 

io.sockets.on('connection', function (socket) { 
    console.log('Client successfully connected'); 
    mysocket = socket; 
}); 

//udp server on 41181 
var dgram = require("dgram"); 
var server = dgram.createSocket("udp4"); 
server.on("message", function (msg, rinfo) { 
    console.log("Packet recieved from server: " + msg); 
    if (mysocket != 0) { 
    mysocket.emit('field', "" + msg); 
    mysocket.broadcast.emit('field', "" + msg); 
    } 
}); 


server.on("listening", function() { 
    var address = server.address(); 
    console.log("udp server listening " + address.address + ":" + address.port); 
}); 
server.bind(41181); 

和我的客户:

<script src="http://domain.com:8070/socket.io/socket.io.js"></script> 
     <script type="text/javascript"> 
      var socket = io.connect(http://domain.com:8070); 
      socket.on("hello", function(l){ 

       var k = l.split(/,/); 
       switch(k){ 

        case "testing": 
        { 
         window.alert('lol'); 
         return; 
        } 

       } 
      }); 

     </script> 

我如何能得到它的工作http://domain.com:8070任何想法?谢谢。

回答

0

它看起来像你的插座不侦听端口8070.

未经检验的,但值得一试:

var io = require('socket.io').listen(app.listen(8070), {log: false}); 

您也可以从客户端删除URL(尽管它shoudn't改变任何东西):

var socket = io.connect(); 

编辑:

你也应该在包裹的地址报价:

var socket = io.connect("http://domain.com:8070"); 
+0

不行不行,但谢谢。 – Jake 2014-10-05 21:12:01

+0

我忘记提及它可以在serverip上运行:8070 但是我不想让我的serverip显示在萤火虫中,例如 – Jake 2014-10-05 21:12:56

+0

在这种情况下不能使用localhost吗? – xShirase 2014-10-05 21:13:41