:传统的网络服务技术,是每个新增一个连接(请求)便生成一个新的线程,这个新的线程会占用系统内存,最终会占掉所有的可用内存。
:只运行在一个单线程中,使用非阻塞的异步 I/O 调用,所有连接都由该线程处理,也就是一个新的连接,不会开启新的线程,仅仅一个线程去处理多个请求。
假设是普通的Web程序,新接入一个连接会占用 2M 的内存,在有 8GB RAM的系统上运行时, 算上线程之间上下文切换的成本,并发连接的最大理论值则为 4000 个。这是在传统 Web服务端技术下的处理情况。而 Node.js 则达到了约 1M 一个并发连接的拓展级别
Node.js弊端:大量的计算可能会使得 Node 的单线程暂时失去反应, 并导致所有的其他客户端的请求一直阻塞, 直到计算结束才恢复正常
传统的web server多为基于线程模型。你启动Apache或者什么server,它开始等待接受连接。当收到一个连接,server保持连接连通直到页面或者什么事务请求完成。如果他需要花几微妙时间去读取磁盘或者访问数据库,web server就阻塞了IO操作(这也被称之为阻塞式IO).想提高这样的web server的性能就只有启动更多的server实例。
Node.Js使用事件驱动模型,当web server接收到请求,就把它关闭然后进行处理,然后去服务下一个web请求。当这个请求完成,它被放回处理队列,当到达队列开头,这个结果被返回给用户。这个模型非常高效可扩展性非常强,因为webserver一直接受请求而不等待任何读写操作。(这也被称之为非阻塞式IO或者事件驱动IO)
Node.js使用Module模块去划分不同的功能,以简化App开发,Module就是库,跟组件化差不多,一个功能一个库。
NodeJS内建了一个HTTP服务器,可以轻而易举的实现一个网站和服务器的组合,不像PHP那样,在使用PHP的时候,必须先搭建一个Apache之类的HTTP服务器,然后通过HTTP服务器的模块加载CGI调用,才能将PHP脚本的执行结果呈现给用户
路由句柄(索引):执行完一个函数,接着执行下一个 ,因为有时候处理一个请求,需要做很多其他事情,写在一起业务逻辑不好分开,所以多弄几个行数
直播房间业务逻辑3.1 主播主动开启房间3.2 通知服务器开启房间了3.3 服务器保存房间3.4 观众打开房间,查看直播3.5 主播关闭直播,通知服务器移除房间号
服务器处理4.1 主播开启房间,创建房间,需要传入给服务器保存4.2 服务器用什么保存房间名称,数组还是字典4.3 应该使用字典存储,当主播关闭房间时,可以根据房间号,找到服务器对应的房间号删除。4.4 添加房间,删除房间之后,服务器应该把最新的房间信息返回给客户端展示4.5 服务器可以直接返回房间字典,但是这样客户端必须自己处理下,服务器最好返回房间数组4.6 Object.keys(rooms),传入一个字典,就能获取字典中所有keys,返回一个数组4.7 然后遍历keys数组,一个一个取出对应的value,在保存到数组中4.8 可以使用map函数,让数组中所有元素执行一个方法,然后会自动把处理结果包装成数组.4.9 map函数原理,就是遍历数组中元素,一个一个执行,map函数的参数就是一个函数,,这个函数的参数就是数组中的一个元素key,map需要有返回值,返回值就是key参数的处理结果,会自动把处理结果包装到新数组,然后再统一返回处理好的数组
客户端处理5.1 房间模型(ID,房间名称)5.2 保存到服务器字典,ID作为Key,房间名称作为Value5.3 在发送服务器的时候,需要把ID和Value传给服务器5.4 搞两个参数(一个roomID,一个roomName)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
研究分享【2019年内容营销四大要点】1.快速叙事,在短暂关注时代能否第一时间抓住用户注意力至关重要。2.内容简洁,突出线.数据驱动,根据用户属性将其偏好需求数据化、具体
随着互联网大潮的发展,网络推广成为企业很看重的推广渠道,网络推广做的好,可以让产品卖向世界各地,打破了地域的限制,为网站引流是推广部的小伙伴们日常需要做的工作之一,今天就来分享一下
在工作中,熟练使用各种办公软件是面试的基础,开始可能只会用的Word、Excel等常用的软件。随着时间,工作经验的积累,你可能会发找到一个小主管、经理之类的,这时你就必须在加强常用
北京商标注册费用是北京商标注册中很重要的一个方面,北京商标注册费用是否缴纳成功,是北京商标注册申请的一个重要保障,北京商标总局收费依据: 原国家计委、财政部计价格[1995]240
工作中是否遇到过下载的PDF文件无法编辑的情况?下面小编就教大家怎么修改PDF里面的文字内容。 准备工作:下载安装一款pdf编辑器,下面以迅捷pdf编辑器为例: 软件版本:1.0
汽车“三分修,七分养”,相信大多数人都有这种观念。随着汽车维修技术水平不断提高,“以养代修”的观念日益深入人心。而4S店就是“修”和“养”相结合的专业地方。尽管它比普通的维修店价格

