![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NodeJS
文章平均质量分 92
IT 哈
这个作者很懒,什么都没留下…
展开
-
联机游戏原理入门即入土 -- 入门篇
联机游戏转载 2022-09-15 10:06:50 · 4772 阅读 · 0 评论 -
Node.js 事件循环机制
Node.js 事件循环机制转载 2022-07-15 15:05:32 · 247 阅读 · 0 评论 -
npm 和 npx 有什么区别?
作者:嘶吼链接:https://www.zhihu.com/question/327989736/answer/787995048来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。说到npm那当然就离不开社区文化,那我们就从社区文化开始说起:社区文化的意思是:拥有共同职业或兴趣的人群,自发组织在一起,通过分享信息和资源进行合作与交流。虚拟社区的参与者经常会在线讨论相关话题,或访问某些网站。前端程序员也有社区,世界上最大的前端社区应该就是 GitHub 了。前.转载 2021-10-29 17:35:19 · 852 阅读 · 0 评论 -
NodeJS 多进程和集群
进程和线程“进程” 是计算机系统进行资源分配和调度的基本单位,我们可以理解为计算机每开启一个任务就会创建至少一个进程来处理,有时会创建多个,如 Chrome 浏览器的选项卡,其目的是为了防止一个进程挂掉而应用停止工作,而 “线程” 是程序执行流的最小单元,NodeJS 默认是单进程、单线程的,我们将这个进程称为主进程,也可以通过child_process模块创建子进程实现多进程,我们称这些子进程为 “工作进程”,并且归主进程管理,进程之间默认是不能通信的,且所有子进程执行任务都是异步的。sp..转载 2021-09-22 17:40:47 · 319 阅读 · 0 评论 -
commander.js基本用法
准备工作安装nodejs 安装commander.js,执行npm install commander --saveversion方法作用:定义命令程序的版本号参数说明:版本号<必须> 自定义flag<可省略>,默认为-V和--version使用:(1)只传入版本信息 // index.js const program = require('commander'); program .version('1.0..转载 2021-09-22 11:17:52 · 1267 阅读 · 0 评论 -
简单明了的进程、线程教程
用户角度打开电脑后,就可以同时使用多个应用程序。可以一边上网,一边听音乐,一边微信聊天,一边用vscode写代码。操作系统角度对于操作系统来说,它需要做的事情就是如何管理这些应用程序。用什么去管理呢?首先需要把这些应用程序抽象出来,叫做什么呢,就叫做进程吧。有些App运行起来,可能仅仅需要一个进程去维护应用的状态,而有些则需要多个进程。例如一个浏览器,某个进程负责渲染页面,某个进程...转载 2019-05-22 15:58:23 · 439 阅读 · 0 评论 -
nodejs/Sequelize/MySQL——基础、联表及优化
本文你将看到:MySQL、SQL、ORM、Sequelize 在概念上的关系 Sequelize 的用法 Sequelize 中联表关系的概念、用法、原理、区别 如何优化数据库查询1 概念MySQL大部分人对 MySQL、SQL 是有了解的,毕竟教科书里都写着。 MySQL 是一种典型的关系型数据库嘛,怎么叫关系呢?简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。这里两个点:::二维行列表::(体现在个体表数据结构上)、::互相连接::(体现在表关系和库引擎特点转载 2021-06-14 17:39:09 · 579 阅读 · 0 评论 -
process.env.NODE_ENV详解
一、 process.env.NODE_ENV是什么?在node中,有全局变量process表示的是当前的node进程。process.env包含着关于系统环境的信息,但是process.env中并不存在NODE_ENV这个东西。NODE_ENV是一个用户自定义的变量,在webpack中它的用途是判断生产环境或开发环境。为了查看 process的基本信息,我们可以在文件夹中 新建一个process.js文件,在里面加一句代码console.log(process);然后进入该文件夹,执行n转载 2021-05-10 19:29:05 · 2487 阅读 · 0 评论 -
【译】使用Node.js创建命令行脚本工具
通过本文将一步步带领你利用Node.js来创建命令行脚本工具。在我的职业生涯中已经写过了上百个 `Bash` 脚本,但我的 `Bash` 依然写得很糟糕,每一次我都不得不去查一些简单逻辑结构的语法。如果我想通过 `curl` 或者 `sed` 来做一些事情,我也必须去查找 `man` 文档。本文译自Building command line tools with Node.js,介绍了如何通过Node.js来创建命令行脚本工具,介绍了很多实用的npm包等。翻译水平有限,敬请指正~在我的职业生..转载 2021-05-10 14:50:25 · 709 阅读 · 0 评论 -
跨域(CORS)产生原因分析与解决方案,这一次彻底搞懂它
Cross-origin Resource Sharing 中文名称 “跨域资源共享” 简称 “CORS”,它突破了一个请求在浏览器发出只能在同源的情况下向服务器获取数据的限制。本文会先从一个示例开始,分析是浏览器还是服务器的限制,之后讲解什么时候会产生预检请求,在整个过程中,也会讲解一下解决该问题的实现方法,文末会再总结如何使用 Node.js 中的 cors 模块和 Nginx 反向代理来解决跨域问题。文中使用 Node.js 做一些 Demo 的演示,每一小节之后也会给予代码的 Demo ..转载 2020-12-30 13:08:24 · 1558 阅读 · 0 评论 -
基于nodejs做一个简单的http/web服务器
基于nodejs做一个简单的http/web服务器nodejs是什么简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。创建项目环境,执行下面的命令fuc.js根据不同请求方法做不同的处理...转载 2020-10-09 11:01:21 · 582 阅读 · 0 评论 -
Node.js + Socket.io 实现一对一即时聊天
实现一对一即时聊天应用,重要的一点就是消息能够实时的传递,一种方案就是熟知的使用 Websocket 协议,本文中我们使用 Node.js 中的一个框架http://Socket.io来实现。效果预览先看下,我们实现的最终效果,如下所示:你也可以在浏览器分别输入以下两个 URL 地址进行体验:http://120.27.239.212:30010/?sender=赵敏&receiver=聂小倩 http://120.27.239.212:30010/?sender=聂...转载 2020-08-14 16:47:49 · 1595 阅读 · 1 评论 -
Node.js 游戏服务器开发
项目名称:四川麻将统一简称:scmj参考资料:https://v.qq.com/x/page/o0522mo58vj.html基本概念代开房间带开房间表示代理创建一个新的房间,让其它玩家加入。为什么要代开房呢?首先可以帮助没有房卡的朋友开房来提升尚未买卡的玩家积极性,其次代理开房可以更高的对玩家进行管理以防止玩家自己创房。代开流程客户端新增代开选项,代理创房的消息内附带代开标识。 大厅服中区分不同类型的房间并分别处理 房间服添加对代开的数据读写 客户端获取代开房列表 房间服获取转载 2020-07-30 15:52:34 · 2081 阅读 · 0 评论 -
Commander基本使用
随着NodeJs的不断发展,对于前端来说要做的东西也就更多,Vue脚手架React脚手架等等等一系列的东西都脱颖而出,进入到人们的视野当中,对于这些脚手架工具来讲也只是停留在应用阶段,从来没有想过脚手架是如何实现的?vue init webpack 项目名称是如何通过这样的命令创建了一个项目,其最重要的模块就是今天要说的Commander。Commander模块又国外TJ大神所编写项目地址:CommanderCommander基本用法Commander文档写的很详细,跟着文章详细的学习一转载 2020-07-20 16:24:24 · 5518 阅读 · 0 评论 -
碎碎酱的博客
老博客地址:https://www.suisuijiang.com/blog/文章基于 linaria 的 CSS in JS 方案解决在 Canvas 中使用自定义字体初次绘制文字时不生效的问题实现一套前端应用监控系统Vue SSR 内存泄漏问题从一次 vue ssr 渲染客户端报错, 来看 ssr 客户端激活过程移动端 vw 布局实现 1px 边框线的 scss mixinlerna 相关编写优雅的 commit message 并自动生成 changelogwebpack 4 新增 side.转载 2020-07-20 15:32:54 · 125 阅读 · 0 评论 -
CGI是什么
CGI早期的Web服务器,只能响应浏览器发来的HTTP静态资源的请求,并将存储在服务器中的静态资源返回给浏览器。随着Web技术的发展,逐渐出现了动态技术,但是Web服务器并不能够直接运行动态脚本,为了解决Web服务器与外部应用程序(CGI程序)之间数据互通,于是出现了CGI(Common Gateway Interface)通用网关接口。简单理解,可以认为CGI是Web服务器和运行其上的应用程序进行“交流”的一种约定。Web系统结构CGI是Web服务器和一个独立的进程之间的协议,它会把HTT转载 2020-07-17 16:56:38 · 11615 阅读 · 0 评论 -
每天阅读一个 npm 模块(1)- username
最近工作比较繁忙,每天能用于学习知识的时间越来越少,深感这样不利于自己的技术提升。恰好想起 狼叔 所说的 “迷茫时学习 Node.js 最好的方法 - 每天看十个 npm 模块“,虽然每天没有那么多时间看十个模块,但时间就像海绵一样,挤一挤,每天阅读一个模块还是能做到的。希望通过这一系列的文章,一方面提醒自己在工作中牢记技术的初心,另一方面鞭策自己在 Node.js 的路上不断前行。一句话介绍第一个 npm 模块我选择的是 username,用于获取当前用户的用户名,当前版本为 3.0.0,周下转载 2020-07-16 18:00:47 · 714 阅读 · 0 评论 -
以Node应用为例谈如何管理Web应用的环境常量
在程序员自己的小世界里,我们一直在和“量”打交道——变量和常量。可是常量真的是一成不变的吗?事实上,常量也分为两种,应用常量(application-specific constant)和环境常量(environment-specific constant)。所谓应用常量就是,无论这个应用程序运行在哪里,这个值都是不会变的。例如,对于一个用户模块,用户名的最大长度一直都为25,那么我就可以在配置文件中直接写下这个常量。下面以JavaScript为例: 1 con转载 2020-07-15 15:50:48 · 164 阅读 · 0 评论 -
一种适合竞技和MMO的无单点游戏服务端集群模式
一、众所周知,在大厅+子游戏模式中,最容易现实集群的部分,就是子游戏部分。 我们只需要在创建房间的时候使用负载均衡算法选择适合的服务器进程就行。常见的集群模式有下面两种情况 。1、中央集群模式,消息通过中央服转发 中央集群式的优点就是架构简单,每个进程只需要维护与中心服的连接就行。中心服还能够实时监测各进程状态,并向所有节点广播。中央集群式的缺点就是这个中心服单点。中心服故障,或者压力过大时,都会出现整个系统架构不稳,响...转载 2020-06-24 16:04:45 · 258 阅读 · 0 评论 -
《球球大作战》源码解析:服务器与客户端架构
系列文章《球球大作战》源码解析——(1)运行起来《球球大作战》源码解析:服务器与客户端架构《球球大作战》源码解析:移动算法《球球大作战》源码解析(6):碰撞处理《球球大作战》源码解析(7):游戏循环《球球大作战》源码解析(8):消息广播鉴于agar.io类型游戏的火爆场面,一些公司纷纷效仿,一时间出现各种《XX大作战》类型的游戏。出于学习的目的,亦是做些技术和方案储备,接下来会有大概10篇文章,分析下面这款使用nodejs编写的开源“球球大作战”。由于该游戏采用服务端运算、客户端显示的方式,服务端的逻...转载 2020-06-24 15:51:06 · 2625 阅读 · 0 评论 -
NodeJS 开发多人实时对战游戏服务器 (一)
从一个游戏情怀说起接触的第一款多人对战游戏是帝国时代,依稀记得那时候上学每周最期待的就是冲到电脑课撸一把罗马复兴,高中开始接触《魔兽争霸3》,一款真正让我迷恋十多年的游戏,怀念那时候的《魔兽争霸十大经典战役》还有到图书馆翻 《大众软件》找各种电子游戏相关的新闻的日子,之后和很多人的经历一样,有了 Dota 有了王者荣耀,打一款MOBA游戏几乎成家常便饭,最近也没忍住撸到王者六十多星 ╮(╯_╰)╭。帝国时代魔兽争霸3阴差阳错成为了一名码农,但不幸的是从来没有机会真正去涉足游戏开发者转载 2020-06-24 15:40:44 · 2886 阅读 · 0 评论 -
Node.js 应该拥抱 Actor 模型
Node.js 应该拥抱 Actor 模型Node.js 是近年来服务器端开发工具中可以说最为成功的一个工具了,不仅仅利用 JavaScript 和 Reactor 模型来达到快速开发高并发应用的目的,也顺利入侵前端生态圈,前端开发各种必备的工具链基本都使用 Nodejs 开发。我也用 Nodejs 做过一些针对并发的项目如聊天室等等,但是始终觉得 Nodejs 的基础理念和各种框架还不足够抽象,以帮助我快速对此类项目进行清晰有条理的建模。当项目尺度越来越大之后, 为了达到更好的 Scalability转载 2020-06-17 11:41:29 · 769 阅读 · 0 评论 -
深入浅出 Node.js 游戏服务器开发 -- 分布式聊天服务器搭建
在上一篇文章中, 我们介绍了游戏服务器的基本架构、相关框架和 Node.js 开发游戏服务器的优势。本文我们将通过聊天服务器的设计与开发,来更深入地理解 pomelo 开发应用的基本流程、开发思路与相关的概念。本文并不是开发聊天服务器的 tutorial,如果需要 tutorial 和源码可以看文章最后的参考资料。为什么是聊天服务器?我们目标是搭建游戏服务器,为什么从聊天开始呢?聊天可认为是简化的实时游戏,它与游戏服务器有着很多共通之处,如实时性、频道、广播等。由于游戏在场景管理、客户端动画等方转载 2020-06-15 14:59:57 · 842 阅读 · 0 评论 -
深入浅出 node.js 游戏服务器开发 1——基础架构与框架介绍
游戏服务器概述没开发过游戏的人会觉得游戏服务器是很神秘的东西。但事实上它并不比 web 服务器复杂,无非是给客户端提供网络请求服务,本质上它只是基于长连接的 socket 服务器。当然在逻辑复杂性、消息量、实时性方面有更高的要求。游戏服务器是复杂的 socket 服务器。如果说 web 服务器的本质是 http 服务器,那么游戏服务器的本质就是 socket 服务器。 它利用 socket 通讯来实现服务器与客户端之间的交互。事实上有不少游戏是直接基于原生 socket 来开发的。 相对于简单的转载 2020-06-15 14:56:31 · 2006 阅读 · 0 评论 -
Node.js 之网游服务器实践
随着Node.js的不断发展与壮大,应用范围也越来越广泛,从传统的企业应用,到互联网使用,再到云计算的发展,它的身影也是随处可见。当然,它的受欢迎程度能在短时间内得到这么快的发展,除却与其本身的事件模型及V8的性能优化等一系列特性有关之外,还和国内外很多互联网公司的攻城师的大量应用和参与到开源项目中有密切关系,如网易的游戏开发,淘宝的数据之美等等。随着 HTML5 应用和移动互联网平台的指数增长,越来越多的用户使用了移动平台的休闲服务,采用 Node.js 实现高性能和可扩展性的游戏服务将是一件有意...转载 2020-06-15 14:50:38 · 354 阅读 · 0 评论 -
Node+WebSocket+Vue 一对一、一对多聊天室消息已读未读 - 第四章
Node + WebSocket + Vue 一对一、一对多聊天室消息已读未读 - 第四章前言这篇文章非常的短小,在之前文章基础上就实现一个非常小的功能点,消息已读和未读。如果您还没有看过之前的文字,请点击下方链接查看!推荐文章:《Nodejs + WebSocket简单介绍及示例 - 第一章》《Nodejs + WebSocket + Vue 实现多人聊天室WebIM功能 - 第二章》《Nodejs + WebSocket + Vue 一对一、一对多聊天室 - 第三章》WebSo.转载 2020-06-11 17:09:45 · 1092 阅读 · 0 评论 -
学习WebSocket协议—从顶层到底层的实现原理(修订版)
从RealTime说起自从即时Web的概念提出后,RealTime便成为了web开发者们津津乐道的话题。实时化的web应用,凭借其响应迅速、无需刷新、节省网络流量的特性,不仅让开发者们眼前一亮,更是为用户带来绝佳的网络体验。近年来关于RealTime的实现,主要还是基于Ajax的拉取和Comet的推送。大家都知道Ajax,这是一种借助浏览器端JavaScript实现的异步无刷新请求功能:要客户端按需向服务器发出请求,并异步获取来自服务器的响应,然后按照逻辑更新当前页面的相应内容。但是这仅仅是拉取啊,转载 2020-06-11 16:31:32 · 2127 阅读 · 0 评论 -
图片上传总结(IE9拜拜)
增加图片发送功能一、需求(1)点击图片 Icon,出现文件上传框,选择图片;(2)验证图片类型及大小,本地预览的同时上传到服务器;(3)上传完之后进行发送,同消息发送(本文不涉及)。二、DOM节点预备图片Icon(展示,用于点击) 文件上传标签 <input type="file" />(隐藏)可选项:form 表单(隐藏):如果不使用 formData,可通过表单上传 iframe(隐藏):如果不使用 ajax,可用于存放图片上传之后返回的数据(被称为隐藏 i..转载 2020-06-11 16:28:00 · 269 阅读 · 0 评论 -
Socket.IO打造基础聊天室
01 Socket.io 简介一个100%由 JavaScript 实现、基于Node.js的用于实时通信、跨平台的开源框架,它包括了客户端的 JavaScript 库和 服务器端的 Node.js 服务。 实现了对于其他语言的支持,如 Java、C++、Swift。 提供了一个与 WebSocket 类似的通用 API:Socket.io方法与事件【主要特点】:(1) 可靠性(Reliability):依赖 Engine.IO, 首先建立长轮询,然后试着升级到更好的传输方式,如 ..转载 2020-06-11 15:54:14 · 1868 阅读 · 0 评论 -
我踩了富文本编辑的坑
初次接触富文本编辑是在去年校招的时候,当时选了葡萄城校招编程中的一道,写一个富文本编辑器。然后,我就写了一个 demo:textEditor,实现了一些很简单的功能。最近,工作上有了富文本编辑的需求,正好趁此机会,可以好好研究一下了,有意思的同时也将寄几带入了深坑。WangEditor 算是目前做的比较好的开源的富文本编辑器,阅读它的源码真的是解决了我很多问题呢,感谢大神~~以下是对自己踩坑的记录,项目背景是仿网易七鱼访客端IM。仿网易七鱼聊天室一、两个主要对象对于富文本编辑器的操作,主转载 2020-06-11 14:43:18 · 963 阅读 · 0 评论 -
搭建WebSocket简易聊天室
写在前面:随着越来越多的新人开始接触白鹭引擎,创作属于自己的游戏。考虑到初学者会遇到一些实际操作问题,我们近期整理推出“菜鸟”系列技术文档,以便更好的让这些开发者们快速上手,Egret大神们可以自动忽略此类内容。本文,我们通过Egret和Node.js实现一个在线聊天室的demo。主要包括:聊天,改用户名,查看其他用户在线状态的功能。大致流程为,用户访问网页,即进入聊天状态,成为新游客,通过底部的输入框,可以输入自己想说的话,点击发布,信息呈现给所有在聊天的人的页面。用户可以实时修改自己的昵称,用户离线转载 2020-06-06 18:41:51 · 958 阅读 · 0 评论 -
我写了一份操作系统词典送给你!
1. 操作系统(Operating System,OS):是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。2. shell:它是一个程序,可从键盘获取命令并将其提供给操作系统以执行。在过去,它是类...转载 2020-04-28 09:10:14 · 1088 阅读 · 1 评论 -
Vue模仿Mac版本QQ开源啦 | 掘金优秀开源推荐
前言曾几何时,大多数使用QQ的人,脑子里都想过这样一件事:这东西好厉害,啥时候我也能实现一个就好了。昔日,腾讯彻底关闭了web版本的QQ。今日,我决定用Vue来实现它,当然这是一个很庞大的项目,目前我只完成了一个雏形,实现了群聊功能和移动端的适配(简陋适配)。我决定写这个项目的主要原因是想巩固下Vue的语法,挑战下将客户端才能实现的功能,搬到浏览器端来实现。项目目录dist 编译后...转载 2020-04-24 09:25:36 · 428 阅读 · 0 评论 -
多维度分析 Express、Koa 之间的区别
Express 历史悠久相比 Koa 学习资料多一些,其自带 Router、路由规则、View 等功能,更接近于 Web FrameWork 的概念。Koa 则相对轻量级,更像是对 HTTP 的封装,自由度更多一些,官方koajs/koa/wiki提供了一些 Koa 的中间件,可以自行组合。本文重点从Handler 处理方式、中间件执行机制、响应机制多个维度来看待 Express、Koa...转载 2020-04-24 09:04:54 · 426 阅读 · 0 评论 -
入门操作系统知识,这一篇就够啦!
弱弱的问一问: 要操作系统干嘛?这里先不讲操作系统的概念了,因为文字太生硬了,我们只需要看一个简单的例子: 在我们的JS代码里,只需要输入console.log(1+1); 就可以在浏览器面板中看到2,这其中发生了什么事情呢?(简单扫一眼) 首先键盘输入代码1+1到显示器输出2, 需要CPU控制键盘(输入设备) ,将获取的1+1指令放入内存 然后CPU的控制器从...转载 2020-04-19 17:19:00 · 1770 阅读 · 0 评论 -
js+node.js+socket.io实现聊天功能(私聊,创建群聊)
效果图:这里启动了四个客户端进行测试1. 登录,以及获取在线用户列表2. 私聊功能3. 群聊功能偶然发现了WebSocket, 发现这个可以实时通信,在线聊天,所以就做了一个聊天工具的demo,记录一下源码Socket.ioWebSocket是js原生自带的,而Socket.io相当于是对WebSocket进行封装的一个框架官...转载 2020-04-08 13:47:36 · 4042 阅读 · 0 评论 -
基于express/socket.io的简易聊天室
经过三个月的努力奋斗,FreeNGUI框架现在已经进入维护阶段,也终于有点时间搞搞其他东西,左思右想,最终决定搞一个简单的聊天室。虽然网上教程众多,但还是想自己完整的跑一遍,过过手瘾。主要涉及到以下内容:Express Node.js pug Socket.IO IndexedDBNode.js 是一个基于Chrome V8 引擎的JavaScript 运行环境。官...转载 2020-04-08 12:20:40 · 254 阅读 · 0 评论 -
零基础实现node+express个性化聊天室
零基础实现node+express个性化聊天室本篇文章使用node+express+jquery写一个个性化聊天室,一起来get一下~(源码地址见文章末尾)效果图项目结构实现功能登录检测 系统自动提示用户状态(进入/离开) 显示在线用户 支持发送和接收消息 自定义字体颜色 支持发送表情、图片、窗口抖动下面将一一讲...转载 2020-04-08 11:30:09 · 176 阅读 · 0 评论 -
50行实现Node.js多进程分页爬虫
Coding 应当是一生的事业,而不仅仅是 30 岁的青春饭本文已收录 GitHub https://github.com/ponkans/F2E,欢迎 Star,持续更新Node 用来写爬虫还是挺方便的,网上大部分文章都是单进程爬取,抽下班时间写了个多进程爬虫,源码在文末~每篇文章都希望你能收获到东西,这篇是基于 Node.js 的多进程爬虫,希望你看完有这些收获:Node c...转载 2020-04-08 11:02:15 · 1193 阅读 · 0 评论 -
Pomelo框架总结
Pomelo框架总结A fast,scalable,distributed game server framework for Node.js联系我Pomelo交流群 @老顽童-NextZeus 微信群 BJ NodeJS Club @老顽童适用场景多人游戏:手游,社交游戏,网页游戏,MMORPG ,ARPG 实时应用:聊天,消息推送,等等特点高性能:基于Node.js...转载 2020-04-05 21:09:13 · 1870 阅读 · 0 评论