webScoket

webScoket是什么?


  • 支持端对端通讯
  • 可以由客户端发起,也可以有服务端发起
  • 用于消息通知、直播间讨论区、聊天室、协同编辑等

做一个简单的webScoket


客户端配置:

1、新建一个页面叫web-scoket.html

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>webScoket</title>
</head>
<body>
    <p>webScoket</p>
    <button id="btn-send">发送消息</button>
    <script>
        const btnSend = document.getElementById('btn-send')
    </script>
</body>
</html>

服务器端配置:

1、进入一个目录执行npm init -y

注意:执行以上命令,会生成一个package.json的文件

javascript 复制代码
{
  "name": "web-scoket-sever",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

2、安装ws和nodemon插件、以下是安装插件的命令

javascript 复制代码
sudo cnpm i ws
sudo cnpm i nodemon

3、在文件夹下新建一个src目录,在src目录下新建index.js文件

javascript 复制代码
const { WebSocketServer } = require('ws')

//new 一个webScoket服务,端口号为3000
const wsServer = new WebSocketServer({ port: 3000 })

//监听连接connection,
wsServer.on('connection', wx => {
    console.info('connection');

    //监听信息,msg客户端传递过来的信息
    wx.on('message', msg => {
        console.info('收到信息', msg);

        //收到信息2秒后,给客户端一个反馈
        setTimeout(() => {

            //we.send给客户端发送信息
            we.send('服务端已收到信息!' + msg.toString())
        }, 2000)
    })
})

4、修改package.json文件中的代码

javascript 复制代码
 "dev": "nodemon src/index.js"

5、代码执行npm run dev启动服务

相关推荐
长友cy几秒前
Qt官方示例D-BusListNames阅读
开发语言
萧瑟余晖几秒前
Java深入解析篇六十一之编译器API(javax.tools)详解
java·开发语言
蜡台5 分钟前
Kotlin 零基础完整版实战教程|从语法入门到Android工程实战
android·开发语言·kotlin
计算机魔术师7 分钟前
英伟达据报洽谈向 Mira Murati 的 Thinking Machines Lab 投资 25 亿美元
前端
jimy123 分钟前
C++ 的 “移动语义”——Move Semantics
开发语言·c++
码云数智-园园26 分钟前
C++ STL 容器怎么选?vector、list、map、unordered_map 优缺点对比
java·开发语言
变与不变80627 分钟前
js函数与封装详细解答
前端·javascript·vue.js
en.en..33 分钟前
竖线 |:管道、按位或、掩码组合
java·开发语言
南雨北斗41 分钟前
Vue 3 项目中的拦截器的作用和写法(动态设置响应头适配表单文件上传)
前端
techdashen44 分钟前
Go Map 详解:键值对实际上是如何存储的
开发语言·后端·golang