nodejs中使用WebScoket的简单示例

前言

WebScoket可以用来实现即时通信,一般用于通信聊天工具或者是需要实时接受数据等功能

在浏览器环境中,WebScoket是一个构造函数,需要new创建连接的实例;

在nodejs环境中,则需要使用ws模块来完成服务的创建。

示例

下面是可以直接使用的代码,不需要修改

node创建服务端

//引入模块
const WebScoket = require('ws')//创建服务
const wss = new WebScoket.Server({port:8081})//connection为一个函数
wss.on('connection',connection)function connection(ws){console.log('连接成功')//接受消息ws.on('message',function incoming(message){console.log('监听到了消息',message)console.log(message.toString(),'具体的消息')//message会被转化为Buffer,需要用toString转化一下if(message.toString() ==='你好啊,我是王惊涛'){ws.send('王惊涛你好,我是服务端,收到了你的消息')}else if(message.toString() ==='看到了,看来我们连接成功了'){ws.send('完成通信,完美的很')}})//关闭监听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>通信测试</title>
</head><body><button onclick="sendMsg()">给服务端发送消息</button><script>//创建连接实例const socket = new WebSocket("ws://localhost:8081")//连接成功socket.onopen = function () {console.log('客户端连接上了')}//接收消息socket.onmessage = function (event) {console.log('客户端到的消息', event)if (event.data === '王惊涛你好,我是服务端,收到了你的消息') {socket.send('看到了,看来我们连接成功了')}}//关闭socket.onclose = function () {console.log('关闭')}//发送消息const sendMsg = () => {socket.send('你好啊,我是王惊涛')}</script>
</body></html>

展示效果

客户端效果

服务端效果

 如此就完成了一个最简单的WebScoket通信,感觉有用的给个点赞收藏关注吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571188.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ros time 时间戳改为机器开机时间

文章目录 一、问题描述二、修改方法补充1. 时间类型2. 时间数据使用方法 一、问题描述 因项目需要,需要"ros::Time::now()" 改成获取机器开机时间,此处针对rospy的机器时间修改。 二、修改方法 修改ros源码的文件 /opt/ros/noetic/lib/python3/dist-packages/ros…

面试八股文之JAVA基础

JAVA基础 DNS、CDN&#xff1f;如何实现对象克隆?父子类静态代码块, 非静态代码块, 构造方法执行顺序?String s new String("abc") 创建了几个对象, 分别放到哪里?OSI网络模型七层&#xff1f;应用层协议&#xff1f;http协议和https协议区别&#xff1f;传输层协…

极速体验DolphinScheduler 3.2.1 Standalone 版[一]

文章目录 极速体验DolphinScheduler 3.2.1 Standalone 版前置准备工作启动 DolphinScheduler Standalone Server解压并启动 DolphinScheduler登录 DolphinScheduler 启停服务配置数据库 极速体验DolphinScheduler 3.2.1 Standalone 版 Standalone 仅适用于 DolphinScheduler 的…

Web API —— BOM 学习(完结)

目录 一、BOM 介绍 二、Window 对象 &#xff08;一&#xff09;基本介绍 &#xff08;二&#xff09;定时器 —— 延时函数 1.语法 2.清除时间函数 3.和 interval 间歇函数的区别 &#xff08;三&#xff09;JS 执行机制 1.介绍 2.同步任务 3.异步任务 4.执行过程…

Tomcat 下载以及安装

Tomcat安装及配置教程主要分为四步&#xff1a; 步骤一&#xff1a;首先确认自己是否已经安装JDK 1. cmd&#xff1a;查看java的版本 步骤二&#xff1a;下载安装Tomcat 1. 下载tomcat :Apache Tomcat - Welcome! 2. 选择对应的tomcat版本&#xff1a; 3. 进行安装&#…

C++中的凸包:convexHull使用手册【c++重要方法】

最近工作中&#xff0c;用到了凸包&#xff0c;查了一些资料&#xff0c;差不多搞明白了&#xff0c;在这里做一个总结&#xff0c;希望可以帮助到你&#xff01; 什么时候需要它&#xff1f; 如果你想要把一群散落的点&#xff0c;包裹起来。而且希望这个包裹尽可能地紧凑&a…

蓝牙耳机什么牌子好?拒绝跟风购买!五大良心品牌推荐

​真无线蓝牙耳机已经成为我们日常生活中不可或缺的数码产品。随着技术的发展&#xff0c;人们对蓝牙耳机的要求越来越高&#xff0c;不仅要求音质出众&#xff0c;还希望长时间佩戴也能保持舒适&#xff0c;并能适应多种使用场景。挑选蓝牙耳机确实需要一些技巧。所以&#xf…

计算机进制转换:二进制、八进制、十进制、十六进制。原码、补码、反码。

一、什么是进制 在生活中&#xff0c;我们通常都是使用阿拉伯数字计数的&#xff0c;也就是10进制&#xff0c;以10为单位&#xff0c;遇10进一&#xff0c;所以是由0&#xff0c;1&#xff0c;2、3、4、5、6、7、8、9组成的&#xff1b;而在计算机中&#xff0c;计算机是无法…

配置wss和隐藏端口号(WebSocket通信)

修改宝塔面板配置文件&#xff1a; 添加这几行代码&#xff1a; location /wss{proxy_pass http://127.0.0.1:23481; # 根据自己的socket端口号修改proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_s…

【前端】使用Web Audio API 技术播放音乐

简言 记录下使用web audio播放音乐的方法。 Web Audio API Web Audio API 提供了在 Web 上控制音频的一个非常有效通用的系统&#xff0c;允许开发者来自选音频源&#xff0c;对音频添加特效&#xff0c;使音频可视化&#xff0c;添加空间效果&#xff08;如平移&#xff09…

Python之Scrapy爬虫框架安装及使用详解

声明 文章所涉及的内容仅为学习交流所用。 前言&#xff1a; Scrapy 是用 Python 实现的一个为了采集网站数据、提取结构性数据而编写的应用框架。常应用在包括数据挖掘&#xff0c;信息处理或存储历史数据等一系列的程序中。通常我们可以很简单的通过 Scrapy 框架实现一个爬…

【漏洞复现】用友U8 login2.RegisterServlet接口处存在SQL注入漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…