1. 遇到什么问题
之前的HTTP,无状态请求响应模型,有别于Flash和Java Applets的沙盒环境,还为了解决I/O扩展问题
2. 是什么
用Google V8引擎,libuv作为平台抽象层,JavaScript编写的核心库封装编译
目的是构建一个有实时推送能力的网站
提供事件驱动、非阻塞I/O的模型,在使用WebSocket推送创建的实时Web应用中大放异彩
最终有了实时、全双工通信的Web应用,浏览器和服务器都可初始化连接,自由交换数据
特点
- 单线程,高并发,低内存
- 非阻塞、事件驱动I/O模型
- 轻量、高效,能够构建数据密集型、实时的跨平台应用
适合用来做什么
- 聊天室 (公司在线OA)
- 非关系型数据库数据接口(JSON,无需转换)
- 队列(Web应用用Node实现了高并发,但是写数据库是阻塞,则可用队列)
- 数据流(语言,视频的在线编码)
- 代理
- 中间层
- 应用监控(使用WebSocket技术跟踪网站访问者并实时可视化他们的交互)
- 系统监控(使用Node.js的事件循环,构建一个强大的信息板,来监控服务器的状态)
不适合用来做什么
- 使用关系型数据库的Web应用程序
- 沉重的服务端计算
3. 扩展开
.Net 的node.js工具:Edge.js
- 为何要用:综合Node.js和.NET两者的优点
- 在Node.js程序中重用某些现成的.NET组件
- 使用多线程CLR运行CPU密集型的计算
-
单一进程中运行Node.js和.NET,并提供V8和CLR互操作机制
image.png
网友评论