广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >nodejs和websocket的区别有哪些
  • 182
分享到

nodejs和websocket的区别有哪些

2024-04-02 19:04:59 182人浏览 八月长安
摘要

nodejs和websocket的区别有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。区别:1、nodejs是一种JS运行

nodejswebsocket的区别有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

区别:1、nodejs是一种JS运行环境,而WEBSocket是一种通信协议;2、nodejs用于方便地搭建响应速度快、易于扩展的网络应用,而WebSocket可使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。

教程操作环境:windows7系统、nodejs 12.19.0版,DELL G3电脑。

nodejs是什么

Node是一个基于Chrome V8引擎的javascript运行环境,一种让JavaScript运行在服务端的开发平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。

Node采用了一个称为“事件循环(event loop)”的架构,使得编写可扩展性高的服务器变得既容易又安全。提高服务器性能的技巧有多种多样。Node选择了一种既能提高性能,又能减低开发复杂度的架构。这是一个非常重要的特性。并发编程通常很复杂且布满地雷。Node绕过了这些,但仍提供很好的性能。

Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。该模型以可扩展的方式简化了对慢资源的访问, 直观,易懂。尤其是对于熟悉onmouseover、onclick等DOM事件的用户,更有一种似曾相识的感觉。

虽然让Javascript运行于服务器端不是Node的独特之处,但却是其一强大功能。不得不承认,浏览器环境限制了我们选择编程语言的自由。任何服务器与日益复杂的浏览器客户端应用程序间共享代码的愿望只能通过Javascript来实现。虽然还存在其他一些支持Javascript在服务器端 运行的平台,但因为上述特性,Node发展迅猛,成为事实上的平台。

15个Nodejs应用场景

我们已经对Nodejs有了初步的了解,接下来看看Nodejs的应用场景。

1 web开发:Express + EJS + MonGoose/Mysql

express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站。Express框架建立在Nodejs内置的Http模块上,并对Http模块再包装,从而实际Web请求处理的功能。

ejs是一个嵌入的Javascript模板引擎,通过编译生成html的代码。

mongoose 是mongoDB的对象模型工具,通过Mongoose框架,可以进行访问MongoDB的操作。

mysql 是连接Mysql数据库的通信api,可以进行访问MySQL的操作。

  通常用Nodejs做Web开发,需要3个框架配合使用,就像Java中的ssh

2 REST开发:Restify

restify 是一个基于Nodejs的REST应用框架,支持服务器端和客户端。restify比起express更专注于REST服务,去掉了express中的template, render等功能,同时强化了REST协议使用,版本化支持,HTTP的异常处理。

3 Web聊天室(IM):Express + http://Socket.io

socket.io一个是基于Nodejs架构体系的,支持websocket的协议用于时时通信的一个软件包。socket.io 给跨浏览器构建实时应用提供了完整的封装,socket.io完全由javascript实现。

4 Web爬虫:Cheerio/Request

cheerio 是一个为服务器特别定制的,快速、灵活、封装Jquery核心功能工具包。Cheerio包括了 jQuery核心的子集,从jQuery库中去除了所有DOM不一致性和浏览器不兼容的部分,揭示了它真正优雅的API。Cheerio工作在一个非常简 单,一致的DOM模型之上,解析、操作、渲染都变得难以置信的高效。基础的端到端的基准测试显示Cheerio大约比JSDOM快八倍(8x)。 Cheerio封装了@FB55兼容的htmlparser,几乎能够解析任何的 HTML 和 XML document。

5 Web博客:Hexo

Hexo 是一个简单地、轻量地、基于Node的一个静态博客框架。通过Hexo我们可以快速创建自己的博客,仅需要几条命令就可以完成。

  发布时,Hexo可以部署在自己的Node服务器上面,也可以部署GitHub上面。对于个人用户来说,部署在github上好处颇多,不仅可以省 去服务器的成本,还可以减少各种系统运维的麻烦事(系统管理、备份、网络)。所以,基于github的个人站点,正在开始流行起来….

6 Web论坛: nodeclub

Node Club 是用 node.js 和 MongoDB 开发的新型社区软件,界面优雅,功能丰富,小巧迅速, 已在Node.js 中文技术社区 CNode 得到应用,但你完全可以用它搭建自己的社区。

7 Web幻灯片:Cleaver

Cleaver 可以生成基于markdown的演示文稿。如果你已经有了一个Markdown的文档,30秒就可以制作成幻灯片。Cleaver是为Hacker准备的工具。

8 前端包管理平台: bower.js

Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系。

9 OAuth认证:Passport

Passport项 目是一个基于Nodejs的认证中间件。Passport目的只是为了“登陆认证”,因此,代码干净,易维护,可以方便地集成到其他的应用中。Web应用 一般有2种登陆认证的形式:用户名和密码认证登陆,OAuth认证登陆。Passport可以根据应用程序的特点,配置不同的认证机制。本文将介绍,用户 名和密码的认证登陆。

10 定时任务工具: later

Later 是一个基于Nodejs的工具库,用最简单的方式执行定时任务。Later可以运行在Node和浏览器中。

11 浏览器环境工具: browserify

Browserify 的出现可以让Nodejs模块跑在浏览器中,用require()的语法格式来组织前端的代码,加载npm的模块。在浏览器中,调用browserify编译后的代码,同样写在<script>标签中。

  用 Browserify 的操作,分为3个步骤。1. 写node程序或者模块, 2. 用Browserify 预编译成 bundle.js, 3. 在HTML页面中加载bundle.js。

12 命令行编程工具:Commander

commander 是一个轻巧的nodejs模块,提供了用户命令行输入和参数解析强大功能。commander源自一个同名的Ruby项目。commander的特性:自 记录代码,自动生成帮助,合并短参数(“ABC”==“-A-B-C”),默认选项,强制选项,命令解析,提示符。

13 Web控制台工具: tty.js

tty.js 是一个支持在浏览器中运行的命令行窗口,基于node.js平台,依赖socket.io库,通过websocket与linux系统通信。特性:支持多 tab窗口模型; 支持vim,mc,irssi,vifm语法; 支持xterm鼠标事件; 支持265色显示; 支持session。

14 客户端应用工具: node-webwit

Node-Webkit 是NodeJS与WebKit技术的融合,提供一个跨Windows、Linux平台的客户端应用开发的底层框架,利用流行的Web技术 (Node.JS,JavaScript,HTML5)来编写应用程序的平台。应用程序开发人员可以轻松的利用Web技术来实现各种应用程序。Node- Webkit性能和特色已经让它成为当今世界领先的Web技术应用程序平台。

15 操作系统: node-os

NodeOS 是采用NodeJS开发的一款友好的操作系统,该操作系统是完全建立在Linux内核之上的,并且采用shell和NPM进行包管理,采用NodeJS不 仅可以很好地进行包管理,还可以很好的管理脚本、接口等。目前,Docker和Vagrant都是采用NodeOS的首个版本进行构建的。

websocket是什么

WebSocket是一种在单个tcp连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范。WebSocket API也被W3C定为标准。

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。

WebSocket能干些啥?

1)通知功能:

保持一个长连接,当服务端游新的消息,能够实时的推送到使用方。像知乎的点赞通知、评论等,都可以使用WebSocket通信。

某些使用H5的客户端,为了简化开发,也会使用WebSocket进行消息的通知,由于它是实时推送的,会有更好的用户体验。

2)数据收集:

一些次优级别的数据,比如行为日志、trace、异常执栈收集等,都可以开辟专门的WebSocket通道进行传输。这能够增加信息的集中度,并能及时的针对用户的行为进行合适的配置推送。由于大多数浏览器内核都支持,它将使客户端APM编程模型变得简单。

3)加密 && 认证:

虽然使用Fiddler、Charles等能够抓到很多WebSocket包。但如果同时开启SSL,传输加密后的二进制数据,会大幅增加破解的成本,会安全的多。

4)反向控制钩子:

这个...由于是双工长连接,服务端完全可以推送一些钩子命令,甚至直接是代码,在客户端进行执行。比如截个屏,录个音,种个小马。用户只要通过了授权申请,剩下的就随你发挥了。

nodejs和websocket的区别

区别一:

Node是一个基于Chrome V8引擎的JavaScript运行环境,一种让JavaScript运行在服务端的开发平台。

WebSocket是一种在单个TCP连接上进行全双工通信的协议。

区别二:

Node用于方便地搭建响应速度快、易于扩展的网络应用。

WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网JavaScript频道,感谢您对编程网的支持。

--结束END--

本文标题: nodejs和websocket的区别有哪些

本文链接: https://www.lsjlt.com/news/88084.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • nodejs和websocket的区别有哪些
    nodejs和websocket的区别有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。区别:1、nodejs是一种JS运行...
    99+
    2022-10-19
  • websocket和ajax的区别有哪些
    这篇文章主要为大家展示了“websocket和ajax的区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“websocket和ajax的区别有哪些”这篇文...
    99+
    2022-10-19
  • nodejs和js的区别有哪些
    这篇文章将为大家详细讲解有关nodejs和js的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。js有什么特点1、js属于一种解释性脚本语言;2、在绝大多数浏览器的支持下,js可以在多种平台下运行...
    99+
    2023-06-14
  • ajax和nodejs的区别有哪些
    本篇内容主要讲解“ajax和nodejs的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ajax和nodejs的区别有哪些”吧! ...
    99+
    2022-10-19
  • nginx和nodejs的区别有哪些
    这篇文章主要介绍nginx和nodejs的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 区别:1、nginx主要是使用C编程语言开发的,而no...
    99+
    2022-10-19
  • lua和nodejs的区别有哪些
    这篇文章主要介绍lua和nodejs的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 区别:1、nodejs是一个javascript运行环境,...
    99+
    2022-10-19
  • angularjs和nodejs有哪些区别
    这篇文章主要讲解了“angularjs和nodejs有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“angularjs和nodejs有哪些区别”吧!...
    99+
    2022-10-19
  • Nodejs和Golang有哪些区别
    本篇内容主要讲解“Nodejs和Golang有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Nodejs和Golang有哪些区别”吧!我们来谈谈 NodeJSNodejs 是 Chrom...
    99+
    2023-06-16
  • nodejs的lts和current有哪些区别
    这篇文章主要介绍“nodejs的lts和current有哪些区别”,在日常操作中,相信很多人在nodejs的lts和current有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2022-10-19
  • nodejs和浏览器的区别有哪些
    这篇文章主要介绍“nodejs和浏览器的区别有哪些”,在日常操作中,相信很多人在nodejs和浏览器的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”nodejs和浏...
    99+
    2022-10-19
  • python和nodejs之间有哪些区别
    这篇文章主要为大家展示了“python和nodejs之间有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“python和nodejs之间有哪些区别”这篇文...
    99+
    2022-10-19
  • php与nodejs的区别有哪些
    这篇文章主要介绍了php与nodejs的区别有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。区别:1、PHP是一种编程语言,Node.js是一个JavaScript运行环...
    99+
    2023-06-20
  • nodejs与vuejs有哪些区别
    小编给大家分享一下nodejs与vuejs有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ...
    99+
    2022-10-19
  • nodejs和JavaScript有什么区别
    这期内容当中小编将会给大家带来有关nodejs和JavaScript有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JavaScript的特点1.JavaScript主要用来向HTML页面添加交互...
    99+
    2023-06-14
  • typescript和nodejs有什么区别
    这篇文章将为大家详细讲解有关typescript和nodejs有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。区别:1、typescript是微软开...
    99+
    2022-10-19
  • php和nodejs的区别
    php和nodejs的区别:1、与php相比,nodejs在性能方面更好。2、在没有控制台命令和SSH(Secure Shell)知识的情况下,用php部署小型企业和个人应用会方便。3、两者相比nodejs依赖关系较少。4、CPU需要做大量...
    99+
    2022-10-13
  • php=== 和==的区别有哪些
    这篇文章主要介绍“php === 和==的区别有哪些”,在日常操作中,相信很多人在php === 和==的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php === 和==的区别有哪些”的疑惑有所...
    99+
    2023-06-25
  • nlp和gpt的区别有哪些
    NLP(Natural Language Processing)是一种涉及人类语言和计算机之间交互的技术。它涉及文本理解、文本生成、...
    99+
    2023-10-09
    nlp gpt
  • c11和dtp的区别有哪些
    小编给大家分享一下c11和dtp的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别:c11屏幕是由日本东芝公司生成的手机屏幕,而dtp屏幕是由韩国LG公司生成的手机屏幕。c11屏幕的可替换性好,而dtp屏幕的可...
    99+
    2023-06-08
  • tar.gz 和tar.bz2的区别有哪些
    这篇文章主要讲解了“tar.gz 和tar.bz2的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“tar.gz 和tar.bz2的区别有哪些”吧!大多以tar.gz 和tar.bz...
    99+
    2023-06-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作