我想使用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',...)
事件永遠不會被解僱。我怎樣才能解決這個問題?