前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >nodejs多房间web聊天室[通俗易懂]

nodejs多房间web聊天室[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-06-25 05:26:47
发布于 2022-06-25 05:26:47
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

一年之前的做的小项目,过了许久,翻出当时的PPT文档总结一下。源码下载:https://github.com/CreekLou/chatRoom

Nodejs背景简介

1 ,JavaScript最早是运行在浏览器中,然而浏览器只是提供了一个上下文 2 ,node.js事实上就是另外一种上下文,它允许在后端(脱离浏览器环境)运行JavaScript代码 3 ,Node.js事实上既是一个运行时环境,同时又是一个库

Nodejs架构如下图

Node.js 的异步机制是基于事件的,所有的磁盘 I/O 、网络通信、数据库查询都以非阻塞,的方式请求,返回的结果由事件循环来处理

•事件驱动的回调(事件轮询)

•异步IO避免了频繁的上下文切换

•在node中除了代码,所有一切都是并行执行的

多线程同步式 I/O与单线程异步式 I/O

同步式 I/O (阻塞式): 利用多线程提供吞吐量 通过事件片分割和线程调度利用多核CPU 需要由操作系统调度多线程使用多核 CPU 难以充分利用 CPU 资源 内存轨迹大,数据局部性弱 符合线性的编程思维

异步式 I/O (非阻塞式): 单线程即可实现高吞吐量 通过功能划分利用多核CPU 可以将单进程绑定到单核 CPU 可以充分利用 CPU 资源 内存轨迹小,数据局部性强 不符合传统编程思维

Node.js 程序由事件循环开始,到事件循环结束,所有的逻辑都是事件的回调函数,所以 Node.js 始终在事件循环中,程序入口就是事件循环第一个事件的回调函数

Nodejs核心模块

1,核心模块是 Node.js 的心脏,它由一些精简而高效的库组成,为 Node.js 提供了基本的 API 2,process:用于描述当前 Node.js 进程状态的对象,提供了一个与操作系统的简单接口,通常在你写本地命令行程序的时候用到。 3,console :用于提供控制台标准输出。(IE) 4,Util: 是一个 Node.js 核心模块,提供常用函数的集合 5,events :是 Node.js 最重要的模块,没有“之一” 6,fs :文件系统,提供了文件的读取、写入、更名、删除、遍历目录、链接等 POSIX 文件系统操作

模块httpServer,Nodejs server 采用V8虚拟机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var http = require("http");//请求(require)Node.js自带的 http 模块,并且把它赋值给 http 变量
http.createServer(function(request, response) {
      //调用http模块提供的函数: createServer
	  response.writeHead(200, {"Content-Type": "text/plain"});
	  response.write("Hello World");
	  response.end();
}).listen(8888);

socket.io

socket.io 提供了三种默认的事件:connect 、message 、disconnect 。

当与对方建立连接后自动触发 connect 事件,当收到对方发来的数据后触发 message 事件(通常为 socket.send() 触发),当对方关闭连接后触发 disconnect 事件。 socket.emit() :向建立该连接的客户端广播 socket.broadcast.emit() :向除去建立该连接的客户端的所有客户端广播 io.sockets.emit() :向所有客户端广播,等同于上面两个的和

CLIENT (INDEX.HTML)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src="/socket.io/socket.io.js"></script> <script>
varsocket=io.connect('http://localhost'); socket.on('news', function (data) { 
     console.log(data); 
      socket.emit('my other event', { my: 'data' }); 
}); 

</script>

SERVER (APP.JS)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var app = require('express')() ,
server = require('http').createServer(app) ,
 io = require('socket.io').listen(server); 
//将 socket.io 绑定到服务器上
server.listen(80);
 app.get('/', function (req, res) { 
    res.sendfile(__dirname + '/index.html'); 
});
//服务器监听所有客户端,并返回该新连接对象
 io.sockets.on('connection', function (socket) {
 socket.emit('news', { hello: 'world' 
}); 
socket.on('my other event', function (data) { 
console.log(data);
 }); 
});

聊天室功能图

参考文献:

http://socket.io/

http://nodejs.org/documentation/tutorials/

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152186.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
级别太高,架构师面试题,谈谈你对IaaS、PaaS、SaaS的理解
有位工作6年的小伙伴,去面试架构师岗位,被问到这样一道题,说谈你对IaaS、PaaS、SaaS的理解。今天,我给大家分享一下我的理解。
Tom弹架构
2022/12/19
1.6K0
级别太高,架构师面试题,谈谈你对IaaS、PaaS、SaaS的理解
如何快速区分IaaS、PaaS 、SaaS?
云是一个非常广泛的概念,它涵盖了所有可能的在线服务,但是当企业参考云采购时,通常会考虑三种云服务模式,即基础架构即服务(laaS),平台即服务(PaaS)和软件即服(SaaS)。由于云系统自身的复杂性和混合模式的组合需要大量理论技巧,在不同应用场景下,也会存在各种具体的使用模式。
齿轮易创说互联网
2018/09/14
13.2K0
如何快速区分IaaS、PaaS 、SaaS?
IaaS、PaaS和SaaS的区别
任何一个在互联网上提供其服务的公司都可以叫做云计算公司。其实云计算分几层的,分别是Infrastructure(基础设施)-as-a-Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最下端,平台在中间,软件在顶端。别的一些“软”的层可以在这些层上面添加。
兮动人
2021/06/11
2.1K0
IaaS、PaaS和SaaS的区别
浅谈云计算发展演变出的三种服务模式:IaaS,PaaS和SaaS
云计算指的是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户,因此任何一个在互联网上提供服务的公司,都可以称之为云计算公司。然而,并不是所有的云计算公司的服务模式都是一样的,虽然云计算的服务模式在不断变化,在业界根据公司的提供的服务方式,划分为三类:
青年码农
2021/02/01
4.6K0
浅谈云计算发展演变出的三种服务模式:IaaS,PaaS和SaaS
IaaS、PaaS、SaaS 是什么?一文看懂云计算的三种服务模式
我们初步了解了“云计算”这一技术是如何通过互联网将计算资源以服务的形式提供给用户的。今天,我们进一步深入云计算的核心:服务模式。
思维云_飞机@ACT888
2025/03/26
2.5K0
有哪些通俗易懂的例子可以解释 IAAS、SAAS、PAAS 的区别?
你一定听说过云计算中的三个“高大上”的你一定听说过云计算中的三个“高大上”的概念:IaaS、PaaS和SaaS,这几个术语并不好理解。不过,如果你是个吃货,还喜欢披萨,这个问题就好解决了!好吧,其实你根本不是一个吃货,之所以自我标榜为吃货,其实是为了收获赞叹式的夸奖,“吃货还这么瘦,好羡慕啊!”或者,总得给伦家的微丰找个像样的理由。
孙杰
2019/10/29
1.3K0
有哪些通俗易懂的例子可以解释 IAAS、SAAS、PAAS 的区别?
如何理解云计算中IaaS、PaaS和SaaS?很简单,就像吃货想吃披萨了…
你一定听说过云计算中的三个“高大上”的概念:IaaS、PaaS和SaaS,这几个术语并不好理解。不过,如果你是个吃货,还喜欢披萨,这个问题就好解决了!好吧,其实你根本不是一个吃货,之所以自我标榜为吃货
小小科
2018/05/03
1.1K0
如何理解云计算中IaaS、PaaS和SaaS?很简单,就像吃货想吃披萨了…
一文看懂LaaS、PaaS、SaaS
导读 互联网的普及,让信息实现了实时传递,缩短了人与人之间的举例。而互联网的高级玩法云计算的落地,让更多具有场景的服务得以实现。于是乎,“云服务”成为当下众多公司快速布局业务的不二之选。 云服务也是分层的。任何一个在互联网上提供其服务的公司都可以叫做云计算公司。其实云计算分几层的,分别是Infrastructure(基础设施)-as-a- Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最下端,平台在中间,软件在顶端。 此前,
企鹅号小编
2018/01/31
15.2K3
一文看懂LaaS、PaaS、SaaS
通俗了解IaaS,PaaS,SaaS
【IT168 评论】云服务已经被大众所熟知,但对于刚接触云计算的朋友来说,仍然是云里雾里的绕着,今天小编就为你解读一下云计算的几种服务模式,IaaS,PaaS,SaaS到底是什么…区别有哪些? 字正腔
企鹅号小编
2018/02/05
4.1K0
通俗了解IaaS,PaaS,SaaS
IaaS, PaaS和SaaS公司都做些什么
云服务”现在已经快成了一个家喻户晓的词了。如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道。
臭豆腐
2019/04/16
1.8K0
IaaS, PaaS和SaaS公司都做些什么
IaaS、PaaS、SaaS到底是什么鬼?
IBM 的软件架构师 Albert Barron 曾经使用披萨作为比喻,解释这个问题。David Ng 进一步,让它变得更准确易懂。
Bug开发工程师
2019/05/05
2.8K0
IaaS、PaaS、SaaS到底是什么鬼?
云服务模型解析:IaaS、PaaS和SaaS以及构建所需的关键技术
在当今数字化时代,云计算为企业提供了灵活性和可扩展性的解决方案。其中,IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)和SaaS(Software as a Service)是三种主要的云服务模型,每个模型都满足不同层次的业务需求。本文将深入解释这三个模型,并探讨构建这些云平台所需的关键技术。
GeekLiHua
2025/01/21
2370
如何区分 PaaS、IaaS 、SaaS呢?
一、基础设施即服务 (IaaS : Infrastructure as a Service)
用户1880875
2021/07/02
1.3K0
如何区分 PaaS、IaaS 、SaaS呢?
云计算三类巨头:IaaS、PaaS、SaaS,分别是什么意思,应用场景是什么?
随着云环境的日益普及,越来越多的企业正在摆脱本地 IT 解决方案,并逐步依赖云环境,在选择云服务时,我们经常会看到IaaS、PaaS、SaaS等术语,那么这三个术语分别是什么意思?如何选择?三者有什么区别呢?
网络技术联盟站
2023/03/05
10.5K0
云计算三类巨头:IaaS、PaaS、SaaS,分别是什么意思,应用场景是什么?
LAAS、PAAS、SAAS是什么意思
SAAS是“Software as a Service”的缩写,中文意思是“软件即服务”。这是一种软件分发模型,其中软件应用由第三方提供商托管,并通过互联网向客户提供。用户通常通过订阅的方式获得软件服务,而不是购买和安装在本地计算机上。SAAS模式允许用户根据需求访问和使用软件,而无需担心软件的维护、更新和支持等后端任务,这些都由服务提供商负责。
JaneYork
2024/05/25
9990
IT知识百科:三大云计算模型IAAS、PAAS、SAAS
云计算已经成为现代IT架构的核心组成部分,而云服务模型是构建和交付云计算服务的关键概念。在云服务模型中,IAAS、PAAS和SAAS是最常见的三种模型。
网络技术联盟站
2023/05/22
15.8K0
IT知识百科:三大云计算模型IAAS、PAAS、SAAS
到底什么是IaaS、PaaS、SaaS?
服务: 指履行职务,为他人做事,并使他人从中受益的一种有偿或无偿的活动,不以实物形式而以提供劳动的形式满足他人某种特殊需要。
奋飛
2021/08/31
5.5K0
到底什么是IaaS、PaaS、SaaS?
SaaS、PaaS、IaaS
PaaS是Platform-as-a-Service的缩写,意思是平台即服务。把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS(Platform as a Service)。
PM吃瓜
2023/03/02
2.6K0
SaaS、PaaS、IaaS
漫画:大厂总体SaaS化部署,到底什么是IaaS、PaaS和SaaS?
在之前的文章《如何给女朋友解释什么是云计算?》中,我们介绍了云计算,在文章中我们提到虽然都是使用云计算服务,但是不同的用户需要的服务是不一样的,有些公司可能只需要租借服务器、有些公司可能需要整套服务,而有些个人客户可能希望直接可以通过付费得到一个网站等。
Java3y
2020/02/21
3.6K0
漫画:大厂总体SaaS化部署,到底什么是IaaS、PaaS和SaaS?
[入门]一道东北菜讲述什么是IaaS、PaaS和SaaS
每次和从事信息化或IT专业人士聊天,总会从他们的嘴里蹦出如:云计算、大数据、雾计算、IaaS、PaaS和SaaS等相关名词。而你呢,只能“嗯嗯嗯、对、听说过,要不就说:那个以前我做过,但是没做完,所以不太懂”或者对方说一句你重复一句,装作很懂得样子。
木禾wen
2019/11/15
1.2K0
[入门]一道东北菜讲述什么是IaaS、PaaS和SaaS
推荐阅读
相关推荐
级别太高,架构师面试题,谈谈你对IaaS、PaaS、SaaS的理解
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档