2. websocket的基本使用

创建时间:2023-02-08 14:45
长度:1686
浏览:0
评论:0

H5已经提供了websocket,我们可以直接去使用它的API


前端基本使用

// 演示websocket 在浏览器端(客户端)如何使用
// H5已经提供了websocket,我们可以直接去使用它的API

// 1. 创建websocket
// 参数1:websocket的服务地址
let socket = new WebSocket('ws://echo.websocket.org');

// 2. 绑定一个事件
socket.addEventListener('open', () => {
    console.log('连接成功')
})
socket.addEventListener('error', (error) => {
    console.log('连接失败', error)
})
socket.addEventListener('message', res => {
    console.log(res, '服务器推送的消息')
})


// 3. 主动给websocket服务端发送消息
button.addEventListener('click', function() {
    let value = input.value;
    socket.send(value);
})


google调试



事件

事件名解释
close当一个 WebSocket 连接被关闭时触发。 也可以通过 onclose 属性来设置
error当一个 WebSocket 连接因错误而关闭时触发,例如无法发送数据时。 也可以通过 onerror 属性来设置
message当通过 WebSocket 收到数据时触发。 也可以通过 onmessage 属性来设置
open当一个 WebSocket 连接成功时触发。 也可以通过 onopen 属性来设置


方法

Socket.close(): 关闭连接

Socket.send(); 发送消息


后端基本使用

mkdir websocket-server && cd websocket-server // 并且目录并且进入目录内
npm init -y // 初始化项目
yarn add nodejs-websocket
touch app.js

// app.js
const ws = require('nodejs-websocket');
const PORT = 8000; // 启动端口


// 1. 创建一个server
const server = ws.createServer(connect => {
    console.log('有用户连接上来了');

    // 用户传递数据过来时,text事件就会触发
    connect.on('text', data => {
        console.log(data);

        // 给用户一个响应数据
        connect.send(data);
    })

    // 只要websocket连接断开,就会触发close事件
    connect.on('close', () => {
        console.log('用户离开了!')
    })

    connect.on('error', err => {
        console.log('用户连接异常', err)
    })
});

// 启动服务
server.listen(PORT, () => {
    console.log(`websocket服务启动成功,localhost:${PORT}`)
})

// 启动命令 ps:nodemon是一个node启动工具,相当于node ./app.js, 只不过nodemon 可以监听更新不需要再次敲打命令
nodemon ./app.js


给所有用户发送消息

给所有的连接用户发送消息,即通常所说的广播

server.connections.forEach((conn) => {
    conn.send(JSON.stringify(msg));
})


评论(共0条)