前端开发攻略---webSocket的简单实现与使用

1、演示

2、实现流程

安装依赖

javascript 复制代码
npm i ws

服务端代码

javascript 复制代码
const WebSocket = require('ws')

// 创建一个 WebSocket 服务器,监听端口 3000
const wss = new WebSocket.Server({ port: 3000 })

// 监听连接事件
wss.on('connection', function connection(ws) {
  console.log('客户端已连接')

  // 监听客户端发送的消息
  ws.on('message', function incoming(message) {
    console.log('收到消息', message.toString())
    // 原样将消息发送回客户端
    ws.send(message.toString())
  })

  // 监听连接关闭事件
  ws.on('close', function () {
    console.log('客户端断开连接')
  })
})

客户端代码

html 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>WebSocket Demo</title>
  </head>
  <body>
    <h1>WebSocket Demo</h1>
    <input type="text" id="messageInput" placeholder="发送消息" />
    <button onclick="sendMessage()">发送</button>
    <ul id="messages"></ul>

    <script>
      const socket = new WebSocket('ws://localhost:3000')

      // 监听连接打开事件
      socket.addEventListener('open', function (event) {
        console.log('服务端已连接')
      })

      // 监听接收消息事件
      socket.addEventListener('message', function (event) {
        console.log('收到信息', event.data)
        displayMessage(event.data)
      })

      // 将消息显示在页面上
      function displayMessage(message) {
        const messages = document.getElementById('messages')
        const li = document.createElement('li')
        li.textContent = message
        messages.appendChild(li)
      }

      // 发送消息到服务器
      function sendMessage() {
        const input = document.getElementById('messageInput')
        const message = input.value
        socket.send(message)
        input.value = ''
      }
    </script>
  </body>
</html>
相关推荐
漂流瓶jz1 小时前
Webpack如何实现万物皆可import?loader的使用/配置/手写实践
前端·javascript·webpack
ZC跨境爬虫1 小时前
跟着 MDN 学CSS day_41:显式轨道、隐式网格与区域命名放置
前端·javascript·css·ui·交互
稳联技术老娜2 小时前
DeviceNet主站怎么连接西门子PLC,Profinet网关配置手册(那智机器人)
服务器·网络·数据库
修己xj2 小时前
告别手动存图!这款叫 Fatkun 的浏览器插件,简直是素材收集神器
前端
TickDB2 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
袋鼠云数栈3 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
AskHarries3 小时前
系统提示词、开发者指令和用户输入的优先级
java·前端·数据库
Moment3 小时前
长上下文会最终杀死 Rag 吗?
前端·javascript·后端
志栋智能4 小时前
AI驱动无代码:降低巡检超自动化的门槛
大数据·运维·网络·人工智能·自动化
专业机床数据采集4 小时前
C# 精雕数控 数据采集 Demo|实时读取精雕机床坐标、主轴、负载、加工工时全量参数
网络·网络协议·tcp/ip·mes·精雕数控数据采集