我正在摆弄socket.io和node.js,并且想知道如何完成以下任务:我有一个简单的表单,将文本字符串发送到服务器,服务器将其发回,并将其附加到div中。我想做的是为所有浏览器中的所有用户更新该 div,目前它只更新发送消息的浏览器。
来自app.js(node.js服务器)的代码:
io.sockets.on('connection', function(socket) {
socket.on('send_message', function(data) {
data.message = data.message + ' yo<br/>';
socket.emit('get_message',data);
});
});
客户端代码:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
$(document).ready(function() {
var socket = io.connect('http://localhost:3000');
$('#sender').live('click',function() {
var user_message = $('#message_box').val()
socket.emit('send_message',{message: user_message});
});
socket.on('get_message', function(data) {
$('#data').append(data.message);
});
});
</script>
和html:
<div id='data'></div>
<input type='text' id='message_box' placeholder='send message'>
<button id='sender'>Send Message</button>
我应该怎么做才能将消息发送到多个浏览器?
Change
socket.emit('get_message',data);
To
socket.broadcast.emit('get_message',data);
将其广播给所有已连接的用户,但您调用广播的套接字除外。
如果您还想包括该套接字,您可以这样做
io.sockets.emit('get_message', data);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)