Websocket

77 阅读1分钟

什么是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就实现了