2012-05-12 32 views
1

客戶端:socket.io客戶不接收數據包

App.socket = io.connect('http://127.0.0.1:4000'); 
App.socket.on('draw', function(data) { 
    console.log("drawing"); 
    return App.draw(data.x, data.y, data.type); 
}); 
... 
$(document).keyup(function(e) { 
    if (e.keyCode == 27) { 
    App.socket.emit('drawing'); 
    } 
}); 

服務器端:

(function() { 
    var io; 
    io = require('socket.io').listen(4000); 
    io.sockets.on('connection', function(socket) { 
    socket.on('drawing', function() { 
     socket.broadcast.emit('draw', { 
     x: 1, 
     y: 1, 
     type: "test" 
     }); 
    }); 
    }); 
}).call(this); 

那麼代碼的功能是檢測的 「ESC」 鍵被按下。當esc鍵被按下時,客戶端發出一個叫做繪圖的包到服務器。這工作,並且服務器確實收到數據包。此外,服務器在收到「繪圖」數據包後廣播一個名爲「draw」的數據包,但由於某種原因,在客戶端,服務器廣播它後未收到繪圖數據包。

我一直在盯着這段代碼幾個小時,看起來很簡單,我希望新鮮眼睛能夠捕捉到這個簡單的錯誤。

感謝

+1

想通了每一個socket連接,socket.emit.broadcast發送報文,除了目前的插座每個插座連接 –

+0

如果你把它寫成答案以便它能幫助別人,那會更好。 –

回答

1

想通了,socket.emit.broadcast發送報文,除了目前的插座

相關問題