首页 > node.js创建WebSocket服务,并使用原生js ES6完成对WebSocket数据交互

node.js创建WebSocket服务,并使用原生js ES6完成对WebSocket数据交互

 

注意,前情提示:

本代码基于《Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)》

传送门Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)_你挚爱的强哥❤给你发来1条消息❤-CSDN博客

首先安装

cnpm i nodejs-websocket

在/api/demo/文件夹下面创建websocket.js  

代码内容

const $g = global.SG.$g, fs = global.SG.fs, router = global.SG.router, ws = global.SG.websocket;
module.exports = global.SG.router;//创建websocket----------------------------------------------------------------
console.log("开始建立连接...");
const port = 10000;//设置websocket占用的端口号,强哥酷爱一万号!
let server = ws.createServer(socket => {socket.on("text", str => {console.log($g.date.nowtime() + "收到客户端的信息:" + str);//socket.sendText("收到客户端的信息:" + str);//只推送给当前连接的一个终端server.connections.forEach(conn => conn.sendText("收到客户端的信息:" + str));//全局广播});socket.on("close", (code, reason) => {console.log($g.date.nowtime() + "关闭连接");});socket.on("error", (code, reason) => {console.log($g.date.nowtime() + "异常关闭");});
}).listen(port);
console.log(`WebSocket建立完毕,地址为:ws://localhost:${port}`);

在index.js最后一行加入

app.use(API_PATH, require(`.${API_PATH}/demo/websocket`));//websocket

运行

node index

接下来打开创建客户端访问的模拟页面,随便新建一个index.html



WebSocket



运行该index.html

多次点击按钮你会看到网页里面出现了

同时去看下服务端的控制台

会了吗?理解了WebSocket的原理了吗,欢迎给我留言哟~

更多相关:

  • 文章目录搭建实验平台使用Unity的准备工作在PC端安装连接Hololens软件Hololens设置开始连接吧绘制显示PC端网页监控...

  •  将多次卷积和池化后的图像展开进行全连接,如下图所示。  全连接层需要把输入拉成一个列项向量          比如你的输入的feature map是2X2,那么就需要把这个feature map 拉成4X1的列向量,如果你的feature map 的channels是3,也就是你的输入是3X2X2,也就是相当于有了12个像素点,...

  • Ubuntu 配置自带桌面共享 1、在setting>>shareing>>remote 选择on 如果用ubunutu直接远程连接的话已经可以了, 2、在ubuntu下使用系统自带的remmina连接 vnc类型 直接输入ip地址 3、如果在windows下面连接的话需要把加密选项关闭 内容: 安装dconf-edito...

  • 第四节 RabbitMQ在C#端的应用-客户端连接 原文:第四节 RabbitMQ在C#端的应用-客户端连接 版权声明:未经本人同意,不得转载该文章,谢谢 https://blog.csdn.net/phocus1/article/details/87357911 1.在VS2013中新建控制台程序,然后添加引用:.NE...

  •     $.ajax({type: "POST",url: "http://127.0.0.1:9999/api/demo/CURD",data: JSON.stringify({token: "sgToken",jsonPath: "user",username: "测试账号",password: "123456",name:...

  • var a = {a: 1}; var b = {b: 2}; var c = Object.assign(a, b);/* a对象也会改变,b不变,返回被被修改对象 */ var d = Object.assign({}, a, b); /* a,b不会被改变,返回新的对象 */ console.log("a", a); cons...

  • function regText(text){var reg = /^[su4e00-u9fa5a-z0-9_-]{0,}$/;if(!reg.exec(text)){console.log("非法字符")}else{console.log("有效字符")} } regText("abc+") 验证 :汉字、英文、数字、下...

  •   /*禁止缩放safari浏览器*/ var scale = {disabledSafari: function () {/* 阻止双击放大*/var lastTouchEnd = 0;document.addEventListener("touchstart", function (event) {if (event.touch...

  •   $g.$utils = {/**舒工Ajax-lite 1.0 -- 最精简的ajax自定义访问方法*/ajax: function (o) {var p = o.post, g = o.get, d = p.data, a = p.async, J = 'json', j = p[J], s = g.success, e =...

  •   Sg.js框架核心概念: 1)所有变量、方法、类对象全部都是从属于$g主树,由$g分支出很多$g.变量名、$g.方法、$g.对象id、$g.类;2)获取控件内部属性必须使用公开的get方法获取,禁止直接用访问内部变量方式来获取控件内部变量、属性值;3)修改控件内部属性、绑定方法等都必须使用公开的set方法来操作,禁止直接用访问...

  •  一、ios header导航栏被推起解决方法 1 设置弹出软键盘时自动改变webview的高度 plus.webview.currentWebview().setStyle({ softinputMode: "adjustResize" // 弹出软键盘时自动改变webview的高度 }); 2 增加样式 html...

  • 前端发送Ajax请求到服务器,服务器返回数据这一过程,因原因不同耗时长短也有差别,且这段时间内页面显示空白。如何优化这段时间内的交互体验,以及长时间内服务器仍未返回数据这一问题,是我们开发中不容忽视的重点。 常见的做法是: 1、设置超时时间,一旦时间超过设定值,便终止请求;2、页面内容加载之前,手动增加一个 loading 层。 代码...