2013-02-04 72 views
0

我想使用Node.js,socket.io和Express在兩條路由之間發送簡單消息。爲什麼套接字io在這種情況下沒有收到消息?

這裏有我的快遞線路:

app.get('/', routes.index); 
app.get('/controller', routes.controller); 

和我在服務器端socket.io:

io.sockets.on('connection', function (socket) { 
    socket.emit('test', {}); 
     socket.on('clicked', function(data) { 
     console.log('clicked received'); 
     socket.emit('do_stuff', data); 
    }); 
}); 
在我的索引頁

<script> 
var socket = io.connect('http://localhost:3001'); 
socket.on('test', function(data) { 
    console.log('test received'); 
}); 
socket.on('do_stuff', function(data) { 
    console.log('should do stuff here'); 
}); 
</script> 
在我的控制器頁面

<button id='the_button'>Click Me</button> 

    <script> 
    var socket = io.connect('http://localhost:3001'); 
    socket.on('test', function(data) { 
     console.log('test recieved'); 
    }); 
    $(function() { 
     $("#the_button").click(function(e) { 
     socket.emit("clicked", {}); 
    }); 
    </script> 

我希望'do_stuff'在控制器頁面上點擊按鈕時在索引頁面上觸發某些功能。然而,socket.on('do_stuff',...)事件永遠不會被解僱。我怎樣才能解決這個問題?

回答

0

確保插座的連接狀態從事件處理程序發出事件之前!

相關問題