安装
npm add socket.io express
- socket.emit 表示触发某个事件,如果需要给浏览器发送数据,需要触发浏览器注册的某个事件
- socket.on 表示注册某个事件,
- 如果需要获取浏览器的数据,需要注册一个事件等待浏览器触发 io.socket: 广播事件 io.emit
服务端
服务器给浏览器发送数据,只要触发浏览器监听的事件即可
var app = require('express')()
var server = require('http').Server(app)
var io = require('socket.io')(server)
// 启动服务
server.listen(3000, () => {
console.log('启动服务成功')
})
// express处理静态资源
// public设置为静态资源目录
app.use('/public', require('express').static('./public'));
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html')
})
io.on('connection', function (socket) {
socket.emit('news', { hello: 'world' })
socket.on('login', data => {
console.log(data)
})
})
客户端
浏览器给服务器发送数据,浏览器触发服务器监听的事件
<script src="/socket.io/socket.io.js"></script>
<script>
var socket = io('http://localhost:3000');
socket.on('news', function (data) {
console.log(data);
// socket.emit('my other event', {
// my: 'data'
// });
});
</script>
页面展示