2010-12-21 76 views
0

我想要設置socket.io,並且遇到我90%確定存在問題。我正在運行我的服務器,它說它已連接,然後我得到2-3秒後進入的新客戶端。這裏是我的終端輸出:Socket.io問題:使用'xhr-polling'初始化大量客戶端

21 Dec 17:36:53 - socket.io ready - accepting connections 
21 Dec 17:37:13 - Initializing client with transport "websocket" 
21 Dec 17:37:13 - Client 4786583543755114 connected 
21 Dec 17:37:18 - Client 4786583543755114 disconnected 
21 Dec 17:37:18 - Initializing client with transport "xhr-polling" 
21 Dec 17:37:18 - Client 377916906028986 connected 
21 Dec 17:37:18 - Initializing client with transport "xhr-polling" 
21 Dec 17:37:18 - Client 3885312571655959 connected 
21 Dec 17:37:18 - Initializing client with transport "xhr-polling" 
21 Dec 17:37:18 - Client 38271573395468295 connected 

還有許多更多的每隔1-2秒。我正在使用safari,它支持websocket,而且第一個響應就很明顯。

這裏是我的服務器代碼:

server = http.createServer(function(req, res){ 
    // your normal server code 
    res.writeHead(200, {'Content-Type': 'text/html'}); 

    var path = url.parse(req.url).pathname; 

    // console.log(__dirname + path); 
    fs.readFile(__dirname + path, function(error, data) { 
     res.end(data); 
    }); 


}); 

server.listen(80); 

// socket.io, I choose you 
var socket = io.listen(server); 

socket.on('connection', function(client){ 
    // new client is here! 
    client.on('message', function(){ }); 
    client.on('disconnect', function(){ }); 
}); 

。而客戶端代碼:

<script> 

     var socket = new io.Socket(); 
     socket.connect(); 

     socket.on('message', function(obj){ 
      alert('got some data ' + obj); 
     }); 

     socket.on('connect', function() { 
      console.log("We've connected!"); 
      socket.send('some data'); 
     }) 


    </script> 

任何鉛或幫助將是非常美妙。謝謝!

回答

2

事實證明,這是一個非常小的修復,使所有的差異 - 不要忘了將HTML5文檔類型<!doctype html>添加到您的客戶端!

+0

我沒有像這樣的問題,但後來我沒有測試safari。我測試了谷歌Chrome/Firefox – Alfred 2010-12-26 01:25:25