如何使用socket.io触发消息?

时间:2013-03-17 14:03:43

标签: javascript html5 node.js socket.io

如何使用html5中的按钮发送消息?

这是我的代码:

服务器:

var io = require('socket.io').listen(72);


io.on('connection', function(client){
    client.send('{"success": 1}');
    client.on('message', function(data) {
        console.log('Client:', data); 
    }); 
    client.on('disconnect', function() {
        console.log('Goodbye');
    }); 
});

客户端:

<!DOCTYPE html>
<html>

<head>
<script src="http://192.168.0.102:72/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://192.168.0.102:72');
function doit(){
  socket.on('message', function(data) {
    socket.send("hi there");
   });
}
</script>

</head>

<body>
    <button name="Klickme" type="button" onclick="doit();">On!</button>
    <button id="off" type="button" onclick="close();">Off!</button>
</body>

</html>

我的客户端/服务器上没有错误,但我也没有收到消息。有人可以给我一个暗示吗?感谢!!!

2 个答案:

答案 0 :(得分:2)

当您想要收听从服务器发送的事件时,使用

on,如果您想发送一条消息,则应使用emit代替:

socket.emit('message', { my: 'data' });

答案 1 :(得分:0)

当您单击按钮(发送message之前)时,您的客户端会从服务器等待hi there。但是一旦页面加载并且客户端连接到服务器,服务器就会发送消息。这是服务器发送的唯一消息。所以客户端一直在等待服务器的消息。将doit()更改为此

function doit(){
    socket.send("hi there");
}