什么是websocket?
WebSocket是一种在单个TCP连接上进行全双工通信的协议。websocket是一种持久性协议,http非持久性
能够实现什么?
实时推送的需求,如实时通讯,聊天,客服咨询等
实现一个websocket
const input = document.querySelector('input')
const button = document.querySelector('button')
const div = document.querySelector('div')
// 创建websocket
const socket = new WebSocket('ws://localhost:3000');
socket.addEventListener('open', function () {
div.innerHTML = '连接成功'
});
button.addEventListener('click', function () {
let value = input.value
socket.send(value)
})
socket.addEventListener('message', function (e) {
div.innerHTML = e.data
})
本地开启一个服务器
const ws = require('nodejs-websocket')
const PORT = process.env.PORT || 3000
// 创建一个server
const server = ws.createServer(connect => {
console.log('有用户连接')
// 每当接收到用户传过来的事件,这个text事件会被触发
connect.on('text', data => {
console.log('接收到用户的数据', data)
// 给用户返回
connect.send(data)
})
})
server.listen(PORT, () => {
console.log('websocket服务启动成功,监听了端口' + PORT)
})
这样一个简单的websocket就实现了