NodeJS多种创建WebSocket监听的方式(三种)


Posted in NodeJs onJune 04, 2020

WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。在WebSocket API中,浏览器和服务器只需要要做一个握手(handshaking)的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

WebSocket是一个通信的协议,分为服务器和客户端。服务器放在后台,保持与客户端的长连接,完成双方通信的任务。客户端一般都是实现在支持HTML5浏览器核心中,通过提供JavascriptAPI使用网页可以建立websocket连接。Java实现的案例,请参考:Java现实WebSocket

为什么用Nodejs?

1. 事件驱动,通过闭包很容易实现客户端的生命活期。
2. 不用担心多线程,锁,并行计算的问题
3. V8引擎速度非常快
4. 对于游戏来说,写一遍游戏逻辑代码,前端后端通用。

当然Nodejs也有一些缺点:

1. nodejs更新很快,可能会出现版本联兼容
2. nodejs还不算成熟,还没有大制作。
3. nodejs不像其他的服务器,对于不同的连接,不支持进程和线程操作。

在权衡Nodejs给我们带来无限畅快的开发的同时,要考虑到他的不成熟,特别是对于“长连接”的网络通信应用。下面我将分别,测试一下网上几种Nodejs实现websocket的框架。

下面通过三种方式给大家介绍nodejs创建WebSocket监听的方式,具体内容如下所示:

第一种,nodejs原生自带的

//引用net库的方式

const net = require('net');
 
const server = net.createServer((socket)=>{
 socket.on("connect",(data)=>{
 console.log("connect");
 })
});
 
server.listen("8111","127.0.0.1")

第二种:

//js的原生方式

const WebSocketServer = require("ws").Server;
var ws = new WebSocketServer({ host: webConfig.ip, port: webConfig.port })
 
io.on('connection', function (socket) {
 socket.on("close", function () {
 console.log("server close");
 });
 
 socket.on("error", function (err) {
 console.log("server error " + err);
 });
 
 socket.on("message", function (cmd, data) {
 console.log("server rcv data=" + cmd);
 socket.send(data);
 });
});

第三种:

//使用外部socket.io库的方式

const io = require('socket.io')(webConfig.port);
io.sockets.on('connection', function (socket) {
 socket.on('getSysConf', function (data) {
 console.log("get sys config ");
 });
});

总结

到此这篇关于NodeJS多种创建WebSocket监听的方式的文章就介绍到这了,更多相关nodejs创建WebSocket监听内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

NodeJs 相关文章推荐
利用NodeJS的子进程(child_process)调用系统命令的方法分享
Jun 05 NodeJs
Nodejs学习笔记之入门篇
Apr 16 NodeJs
windows下安装nodejs及框架express
Aug 07 NodeJs
详解使用nodeJs安装Vue-cli
May 17 NodeJs
浅谈nodejs中的类定义和继承的套路
Jul 26 NodeJs
nodejs对express中next函数的一些理解
Sep 08 NodeJs
Nodejs调用WebService的示例代码
Sep 29 NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 NodeJs
详解NODEJS的http实现
Jan 04 NodeJs
nodejs中各种加密算法的实现详解
Jul 11 NodeJs
详解利用nodejs对本地json文件进行增删改查
Sep 20 NodeJs
NodeJs crypto加密制作token的实现代码
Nov 15 NodeJs
Sublime Text3 配置 NodeJs 环境的方法
May 20 #NodeJs
Nodejs实现WebSocket代码实例
May 19 #NodeJs
Nodejs文件上传、监听上传进度的代码
Mar 27 #NodeJs
nodejs如何在package.json中设置多条启动命令
Mar 16 #NodeJs
nodejs脚本centos开机启动实操方法
Mar 04 #NodeJs
nodejs制作小爬虫功能示例
Feb 24 #NodeJs
nodejs使用socket5进行代理请求的实现
Feb 21 #NodeJs
You might like
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
PHP 传输会话curl函数的实例详解
2017/09/12 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
2019/10/11 PHP
RR vs IO BO3 第一场2.13
2021/03/10 DOTA
Cookie 注入是怎样产生的
2009/04/08 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
js实现三张图(文)片一起切换的banner焦点图
2015/08/25 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
2015/10/25 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
jQuery插件DataTables分页开发心得体会
2017/08/22 jQuery
three.js实现3D视野缩放效果
2017/11/16 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
python 保存float类型的小数的位数方法
2018/10/17 Python
Python使用paramiko操作linux的方法讲解
2019/02/25 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
python处理excel绘制雷达图
2019/10/18 Python
wxPython实现分隔窗口
2019/11/19 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
通信专业个人自我鉴定
2013/10/21 职场文书
自荐信要包含哪些内容
2013/11/06 职场文书
综合办公室主任职责
2013/12/16 职场文书
春节晚会主持词
2014/03/24 职场文书
个人担保书范文
2014/05/20 职场文书
学校工作推荐信范文
2014/07/11 职场文书
爱牙日活动总结
2014/08/29 职场文书
欢送会主持词
2015/07/01 职场文书
漫画「处刑少女的生存之道」第3卷封面公开
2022/03/21 日漫