2014-10-05 92 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