【发布时间】:2013-01-19 17:52:15
【问题描述】:
我正在尝试使用 Node.js、socket.io 和 Express 在两条路由之间发送一条简单的消息。
这是我的特快路线:
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',...) 事件永远不会被触发。我该如何解决这个问题?
【问题讨论】: