创建基于Node的WebSocket服务

一:安装nodejs与npm

apt-get install nodejs npm

但这种方法安装的版本可能偏低,影响后续的 npm install ws wscat。

  
按照 How to Install Node.js and npm on Ubuntu 18.04 | Linuxize里的步骤安装:
1、curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
2、sudo apt install nodejs
3、node --version # v12.22.5
4、npm --version # 6.14.14

二:安装ws与wscat模块

ws 是nodejs的WebSocket实现,借助它来搭建简单的WebSocket Echo Server。
wscat 是一个可执行的WebSocket客户端,用来调试WebSocket服务是否正常。
如果访问官方仓库比较慢的话,可用淘宝提供的镜像服务:
​$ npm --registry=https://registry.npm.taobao.org install ws wscat

三:创建一个简单的服务端

实现的是向客户端返回客户端发送的消息。
$ cd /home/web_ssh
$ vi server.js
 
console.log("Server started");
var Msg = '';
var WebSocketServer = require('ws').Server
    , wss = new WebSocketServer({port: 8010}); # 端口
    wss.on('connection', function(ws) {
        ws.on('message', 

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

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

相关文章

web安全学习笔记(12)

记一下第十六节课的内容。 一、jQuery Ajax 我们要先下载jQuery。 首先我们转移到template目录下,准备把jQuery下载到这下面。 直接wget下来就可以了。 这样我们就下载好了jQuery,下面我们学习如何使用。 jQuery 调用 ajax 方法 格式:$.…

【前端面试3+1】16 TCP与UDP的区别、如何清除浮动、哪些原因造成阻塞页面渲染、【相同的树】

一、TCP与UDP的区别 TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种常用的网络传输协议,它们有以下几点区别: 1、连接性: TCP是面向连接的协议,通信双方在…

ElasticSearch 的 ConstantScoreQuery 的理解

ConstantScoreQuery的定义: A query that wraps another query and simply returns a constant score equal to 1 for every document that matches the query. It therefore simply strips of all scores and always returns 1. 结合DisMaxQueryBuilder可以查找所…

视频拍摄知识+AIGC数据预处理

视角 参考链接:https://www.polarpro.com/blogs/polarpro/filmmaking-101-types-of-camera-shots-and-angles Low Angle Shot 低角度拍摄、horizontal Shot 平视、Dutch Angle Shot 荷兰角斜拍、High Angle Shot 高角度拍摄、Bird’s-eye / Aerial Shot 鸟瞰 / 航…

MASA Framework系列-核心概念(2)

MASA Framework的核心概念主要围绕微服务架构的设计和实现,以确保系统的可扩展性、可维护性和高可用性。以下是MASA Framework的一些核心概念: 1. 服务划分与治理 服务划分:在MASA Framework中,业务功能被拆分成一系列独立的、松…

最大公约数和最小公倍数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//实现最大公约数函数&#xff1b; int max(int x, int y) {//初始化变量值&#xff1b;int judge 1;//运算&#xff1b;judge x %…

【随手记】MySQL快照读和当前读

在MySQL中&#xff0c;当前读和快照读是针对事务隔离级别的概念。事务隔离级别决定了事务在读取数据时的一致性要求和并发控制方式。 当前读(Current Read)&#xff1a;当前读获取的是数据的最新版本&#xff0c;可以读取到其他事务已经提交的更改。当前读可以保证读取到最新的…

Spark---核心概念(Spark,RDD,Spark的核心构成组件)详解

一、什么是Spark Spark就是一个集成离线计算&#xff0c;实时计算&#xff0c;SQL查询&#xff0c;机器学习&#xff0c;图计算为一体的通用的计算框架。 二、Spark特点 1、速度快 相比较于MR&#xff0c;官方说&#xff0c;基于内存计算spark要快mr100倍&#xff0c;基于磁…

【智能算法】CEC2017测试集

目录 1.背景2.CEC2017测试集3.参考文献 1.背景 IEEE 国际进化计算大会&#xff08;IEEE Congress on Evolutionary Computation&#xff0c;IEEE CEC&#xff09;是进化计算领域中规模最大、影响最重要的会议之一。为了公平评估算法的优化性能&#xff0c;该会议在优化竞赛中提…

工作必备!快速了解多微信高效管理工具

在如今社交媒体和移动即时通信的时代&#xff0c;微信已成为人们工作和生活中不可或缺的一部分。而对于那些需要同时管理多个微信账号的用户来说&#xff0c;微信管理工具则是一项绝对必备的利器。 1、多微信同时登录 通过微信管理系统&#xff0c;我们可以在同一个界面内同时…

2024.4.18

思维导图 数据库 #include <myhead.h> //添加学生信息 void insert_stu(sqlite3* sq,char* errMsg) {char text[128];int ID,age,height;char name[10];scanf("%d%s%d%d",&ID,name,&age,&height);sprintf(text,"insert into Student values …

【论文速读】| 大语言模型是边缘情况模糊测试器:通过FuzzGPT测试深度学习库

本次分享论文为&#xff1a;Large Language Models are Edge-Case Fuzzers: Testing Deep Learning Libraries via FuzzGPT 基本信息 原文作者&#xff1a;Yinlin Deng, Chunqiu Steven Xia, Chenyuan Yang, Shizhuo Dylan Zhang, Shujing Yang, Lingming Zhang 作者单位&…

v-infinite-scroll 无限滚动组件

npm install vue-infinite-scroll --save <template><div class"showcase" v-infinite-scroll"loadMore" infinite-scroll-disabled"busy" infinite-scroll-distance"10"><!-- 判断列表是否为空 --><div class&q…

数学建模--蒙特卡罗法MATLAB代码保姆式解析

1.简单介绍 2.思想的实际运用 我们利用蒙特卡罗法的思想求解圆周率π的值&#xff0c;这里求得的肯定是近似值&#xff0c;我们是通过大量的模拟实验&#xff0c;利用概率求解的&#xff0c;但是这个值和我们的精确值之间还是有一定的误差的&#xff1b; 我们的思想就是在半径为…

npm怎么迁移到pnpm

下载的vue3模板用到了pnpm&#xff0c;就安装了一下 但是安装之后使用pnpm install 就发现包全被移动到ignored文件夹下面了,还报错 PS G:\Projects\gitProeject\TS_front> pnpm installWARN  Moving commitlint/config-conventional that was installed by a different …

基于springboot+vue+Mysql的论坛管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

清晰讲明 BFS实现的拓扑排序

前提&#xff1a; 图&#xff1a;就是结点和边组成的数据结构 有向无环图&#xff1a;就是每一个边都有方向&#xff0c;且无法构成一个环&#xff0c;只有没有环的图才能进行拓扑排序&#xff0c;所以拓扑排序也能用来证明该图有没有环 在有向无环图中有两个概念&#xff1…

原生支付宝小程序 - 获取“dom“元素

在支付宝中是不能获取到dom元素的&#xff0c;但是我门可以借助my.createSelectorQuery来实现 Page({data:{sq:{}},onLoad(){},onShow(){this.setData({sq: my.createSelectorQuery()})} })通过axml来查看 <view>{{sq}} </view>会发现它只是一个Object&#xff0…

面试算法-177-二叉搜索树中第K小的元素

题目 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 个最小元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,null,2], k 1 输出&#xff1a;1 解 class Solution…

鸿蒙TypeScript学习第19天【命名空间】

1、TypeScript 命名空间 命名空间一个最明确的目的就是解决重名问题。 假设这样一种情况&#xff0c;当一个班上有两个名叫小明的学生时&#xff0c;为了明确区分它们&#xff0c;我们在使用名字之外&#xff0c;不得不使用一些额外的信息&#xff0c;比如他们的姓&#xff0…