如何使用 socket.io 触发消息?
Posted
技术标签:
【中文标题】如何使用 socket.io 触发消息?【英文标题】:How to trigger messages using 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>
我的客户端/服务器上没有错误,但我也没有收到消息。有人可以给我一个提示吗?谢谢!!!
【问题讨论】:
【参考方案1】:on
用于当你想监听从服务器发送的事件时,如果你想发送消息你应该使用emit
代替:
socket.emit('message', my: 'data' );
【讨论】:
【参考方案2】:当您单击按钮时,您的客户端会等待来自服务器的message
(在它发送hi there
之前)。但是一旦页面加载并且客户端连接到服务器,服务器就会发送消息。那是服务器发送的唯一消息。所以客户端一直在等待来自服务器的消息。把doit()
改成这个
function doit()
socket.send("hi there");
【讨论】:
以上是关于如何使用 socket.io 触发消息?的主要内容,如果未能解决你的问题,请参考以下文章
如何在前端获取 socket.on 函数?事件被触发和处理。我正在使用 socket.io、NodeJS 服务器和 Redis.io
如何使用socket.io在节点js的右侧显示发送消息并在左侧显示接收消息