2014-10-05 2 views
0

У меня есть проблема с моим NodeJS и настройкой SocketIO на моем сервере, Я хочу получить доступ к HTTP Port, выполнивNodeJS и SocketIO на сервере

уага торцевого = io.connect («http://domain.com:8070»); К сожалению, это возвращает 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(); 

Edit:

Вы должны также обернуть адрес в котировки:

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

Нет, не работает, но спасибо. – Jake

+0

Я забыл упомянуть, что он работает на serverip: 8070 Но я не хочу, чтобы мой сервер был показан в firebug, например, – Jake

+0

Не можете ли вы использовать localhost в этом случае? – xShirase

Смежные вопросы