8
Socket.io似乎以指數形式觸發多個消息,下面是我正在運行的導致此問題的示例。Socket.io觸發多個事件
客戶端:
<html>
<head>
<script type="text/javascript" src="../../js/jquery191.min.js"></script>
<script type="text/javascript" src="http://192.168.1.2:8887/socket.io/socket.io.js"></script>
</head>
<body>
<button>Click Me!</button>
<script type="text/javascript">
$(document).ready(function(){
var socket = io.connect('http://192.168.1.2:8887');
$("button").click(function(){
console.log("Emitting test_parent");
socket.emit('test_parent');
socket.on('test_parent_server', function(data){
console.log("Handling test_parent_server");
console.log("Emitting test_child");
socket.emit('test_child');
socket.on('test_child_server', function(ing){
console.log("Handling test_child_server");
});
});
});
});
</script>
</body>
</html>
服務器端:
socket.on("test_parent", function(){
socket.emit("test_parent_server", { data : " " });
});
socket.on("test_child", function(){
socket.emit("test_child_server", { data : " " });
});
對於每一個點擊按鈕的事件被解僱多次,成倍增加的時間有些道理的。我試圖找出發生了什麼,但沒有運氣調試它或在線搜索。
謝謝!我沒有意識到,socket.io會連接這樣的回調,現在我已經像結構一樣工作了! –
@JosephShering,它不是socket.io特定的。這是大多數事件系統的工作原理。我很高興它的工作。如果您對我的回答滿意,請將其標記爲已接受。 –