【问题标题】:How to trigger messages using socket.io?如何使用 socket.io 触发消息?
【发布时间】:2013-03-05 21:22:48
【问题描述】:

如何使用 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>

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

【问题讨论】:

    标签: javascript html node.js socket.io


    【解决方案1】:

    on 用于当你想监听从服务器发送的事件时,如果你想发送消息你应该使用emit 代替:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-10
        • 1970-01-01
        • 2014-08-14
        • 1970-01-01
        • 2017-03-05
        • 2015-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多