html消息广播栏,Socket.io广播消息

在多个客户端与服务器端建立连接后,Socket.IO服务器具有一个sockets属性,属性值为所有与客户端建立连接的socket对象。可以利用该对象的send方法或emit方法向所有客户端广告消息。

IO.sockets.send('user connected'); //发送user connected消息

IO.sockets.emit('login',names); //发送login事件,携带names对象

示例:

该示例代码中,我们首先指定一个names数组,用于存放所有用户名。当与客户端建立链接后,向该客户端发送login事件,事件携带数据为 names数组,以向该客户端发送所有用户名。当某个用户访问网站时,立即可以看见所有已经登录网站的用户名(不包括自己)。当服务器端接收到客户端发送的login事件时,向所有客户端发送login事件,事件携带数据为names数组,以向所有客户端发送所有用户名。当某个用户登录网站时,立即可以看见所有已经登录网站的用户名(包括自己)。其它所有用户可以同时立即看见有哪个用户登录网站。

server.js代码如下:

var http = require('http');

var express = require('express');

var sio = require('socket.io');

var app = express();

var server = http.createServer(app);

app.get('/',function(req,res){

res.sendfile(__dirname + '/index.html');

});

server.listen(1337);

var io =sio.listen(server);

var names = [];

io.sockets.on('connection',function(socket){

socket.emit('login',names);

socket.on('login',function(name){

names.push(name);

io.sockets.emit('login',names);

})

})

index.html代码如下:

var socket = io.connect();

socket.on('login',function(names){

var str = '';

names.forEach(function(name){

str += '用户' + name + '已登录.
'

});

document.getElementById('result').innerHTML = str;

})

function add(){

socket.emit('login',document.getElementById('nickname').value);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值