next

egg-socket在egg中的使用

房东的猫 提交于 2020-10-28 17:29:57
WebSocket 的产生源于 Web 开发中日益增长的实时通信需求,对比基于 http 的轮询方式,它大大节省了网络带宽,同时也降低了服务器的性能消耗; socket.io 支持 websocket、polling 两种数据传输方式以兼容浏览器不支持 WebSocket 场景下的通信需求。 框架提供了 egg-socket.io 插件,增加了以下开发规约: namespace: 通过配置的方式定义 namespace(命名空间) middleware: 对每一次 socket 连接的建立/断开、每一次消息/数据传递进行预处理 controller: 响应 socket.io 的 event 事件 router: 统一了 socket.io 的 event 与 框架路由的处理配置方式 安装 $ npm i egg-socket.io --save 开启插件:config/plugin.js exports.io = { enable: true , package: ' egg-socket.io ' , }; 配置插件config/config.default.js / 和 new2 属于不同的命名空间 即如果你有两个业务用到了socket,可以分别用不同的命名空间去管理,如果只用到一个写一个及可 exports.io = { init: { }, // passed to

【17期】什么情况用ArrayList or LinkedList呢?

我与影子孤独终老i 提交于 2020-10-28 17:29:13
程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 7 分钟。 来自:网络 ArrayList 和 LinkedList 是 Java 集合框架中用来存储对象引用列表的两个类。ArrayList 和 LinkedList 都实现 List 接口。先对List做一个简单的了解: 列表(list)是元素的有序集合,也称为序列。它提供了基于元素位置的操作,有助于快速访问、添加和删除列表中特定索引位置的元素。List 接口实现了 Collection 和 Iterable 作为父接口。它允许存储重复值和空值,支持通过索引访问元素。 读完这篇文章要搞清楚的问题: ArrayList和LinkedList有什么不同之处?什么时候应该用ArrayList什么时候又该用LinkedList呢? 下面以增加和删除元素为例比较ArrayList和LinkedList的不同之处 增加元素到列表尾端: 在ArrayList中增加元素到队列尾端的代码如下: public boolean add (E e) { ensureCapacity(size+ 1 ); //确保内部数组有足够的空间 elementData[size++]=e; //将元素加入到数组的末尾,完成添加 return true ; } ArrayList中add()方法的性能决定于ensureCapacity()方法

ngx-admin with Asp.net Core 2.0, possibly plus OrchardCore

耗尽温柔 提交于 2020-10-28 17:06:00
1 Download ngx-admin from https://github.com/akveo/ngx-admin 2 Create a new Web Application in vs2017 through file->new->project->Select .Net Core->Select ASP.NET Core Web Application and Next->Select Empty Template(Not Angular) and OK Now you have a .net core app and a ngx-admin app in different folders. Presume: ngx-admin in D:\test\ngx-admin asp.net application solution in D:\test\WebApplication1 and there's a project named WebApplication1 in D:\test\WebApplication1\WebApplication1 3 Copy all contents in D:\test\ngx-admin into D:\test\WebApplication1\WebApplication1 . Yes only the contents,

面试命中率90%的点 —— MySQL锁

不问归期 提交于 2020-10-28 15:43:35
一、对MySQL的锁的了解 当数据库有并发事务的时候,可能会产生数据的不一致,这时候需要一些机制来保证访问的次序,锁机制就是这样的一个机制。 就像酒店的房间,如果大家随意进出,就会出现多人抢夺同一个房间的情况,而在房间上装上锁,申请到钥匙的人才可以入住并且将房间锁起来,其他人只有等他使用完毕才可以再次使用。 二、隔离级别与锁的关系 在Read Uncommitted级别下,读取数据不需要加共享锁,这样就不会跟被修改的数据上的排他锁冲突 在Read Committed级别下,读操作需要加共享锁,但是在语句执行完以后释放共享锁。 在Repeatable Read级别下,读操作需要加共享锁,但是在事务提交之前并不释放共享锁,也就是必须等待事务执行完毕以后才释放共享锁。 SERIALIZABLE 是限制性最强的隔离级别,因为该级别锁定整个范围的键,并一直持有锁,直到事务完成。 三、按照锁的粒度分数据库锁有哪些?锁机制与InnoDB锁算法 在关系型数据库中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎 )。 MyISAM和InnoDB存储引擎使用的锁: MyISAM采用表级锁(table-level locking)。InnoDB支持行级锁(row-level locking)和表级锁,默认为行级锁。 行级锁,表级锁和页级锁对比

你真的确定Spring AOP的执行顺序吗

≯℡__Kan透↙ 提交于 2020-10-28 15:21:14
关注公众号: 后端技术漫谈 ,技术之路不迷路~ 前言 忙,是我这个月的主旋律,也是我频繁鸽文章的借口————蛮三刀把刀 公司这两个月启动了全新的项目,项目排期满满当当,不过该学习还是要学习。这不,给公司搭项目的时候,。 本文内容重点: 问题描述 Spring AOP执行顺序 探究顺序错误的真相 代码验证 结论 本文阅读大概需要:3分钟 码字不易,求个关注,欢迎关注我的个人原创公众号:后端技术漫谈(二维码见文章底部) 问题描述 公司新项目需要搭建一个新的前后分离HTTP服务,我选择了目前比较熟悉的SpringBoot Web来快速搭建一个可用的系统。 鲁迅说过, 不要随便升级已经稳定使用的版本 。我偏不信这个邪,仗着自己用了这么久Spring,怎么能不冲呢。不说了,直接引入了最新的SprinBoot 2.3.4.RELEASE版本,开始给项目搭架子。 起初,大多数的组件引入都一切顺利,本以为就要大功告成了,没想到在搭建 日志切面 时栽了跟头。 作为一个接口服务,为了方便查询接口调用情况和定位问题,一般都会将请求日志打印出来,而Spring的AOP作为切面支持,完美的切合了日志记录的需求。 之前的项目中,运行正确的切面日志记录效果如下图: 可以看到图内的一次方法调用,会输出请求url,出入参,以及请求IP等等,之前为了好看,还加入了分割线。 我把这个实现类放入新项目中

python2 python3区别(续)

梦想与她 提交于 2020-10-28 14:59:13
1.除法 Python2 Python3 int/int → int int/int → float python2下整数除以整数返回整数类型,python3下整数除以整数返回浮点数类型 当某些语句假定变量为整数类型时,上面的区别会造成python3下的运行时错误。 建议兼容写法: 建议新写python2脚本时加入from __future__ import division, 这样Python2的脚本就会与python3行为一致,也返回浮点数。 必须使用整数的地方建议使用类型转换, int(), math.floor(), math.ceil(), floor(), round() 等 注意向下取整除法运算符"//" 只在两个操作数都为整数时返回整数类型,否则返回浮点数 x.0, 此运算符在python2和python3下行为一致。 2.数字 Python2 Python3 int类型的最大值为sys.maxint int无最大值限制 long类型无最大值 取消long类型,所有整数为int类型 常量1L表示long类型的常量 1L为语法错误 八进制常量以0或0o开头 ,如0600, 0o600 八进制常量只可以用0o开头, 如0o600 主要兼容问题: 长整型以及八进制常量在Python3的语法错误问题 运行时期间Python3找不到long类型 建议兼容写法:

MySQL基础知识-安装MySQL

时间秒杀一切 提交于 2020-10-28 14:17:30
通过网络上的文章,结合自己的实际操作,完美成功! 现在作为服务器操作系统的一般有三种,Windows Server,Linux,Unix,在这里我们只介绍在windows下和linux下安装mysql,Unix下安装应该和linux差不多。 1. 在浏览器中打开https://www.mysql.com/,进入MySQL的官方网站,国内的网打开可能有点儿慢,稍微等待一下 2. 在打开的网页中选择downloads标签,如下图: 3. 在打开的标签页中,滑到页面的最下面,可以看到MySQL Community Edition Community (GPL) Downloads » 的字样,点击Community (GPL) Downloads »,如下图: 4. 在之后打开的页面中,点击MySQL Community Server (GPL),如下图: 5. 在之后打开的页面中就可以看到相关的下载项了,如下图: 在图中第一个红色框标注的地方就是选择操作系统,这里我们选择Microsoft Windows,可以看到第二个红色框是Recommended download,这里就要区分了,如果是新手建议点击这个,因为这个版本的MySQL不用自己配置,就是普通的安装文件,直接一路next就安装完了,如果想深入学习,那么点击Other downloads内容区的下载,可以看到前两个是正式版

Vmware 下安装linux虚拟机

十年热恋 提交于 2020-10-28 13:01:15
由于想自己玩玩linux系统,就想着装一个linux的虚拟机,虚拟机vmware很好找,也很好用,但是linux镜像安装老是出问题,然后就找了很多版本的,最后实验成功一种,在这里分享给大家. 一、安装环境 Cnetos6.9镜像文件地址链接:https://pan.baidu.com/s/1Tc9VwoSyID0m3KEdFMPiFw 密码:5pw0 二、虚拟机的安装 1.打开VMware Workstation点击创建新的虚拟机 2.选择装机类型在这里我们选择自定义,典型的虚拟机大部分是系统默认选项我们没法改,当然你如果只是为了单纯创建个虚拟机不做其他用途可以选择典型,在这里我们主要讲解自定义虚拟机安装 3.兼容性是根据你电脑配置而定,这个我们点下一步就行。 4.安装操作系统这里我们选择稍后安装系统 5.客户机系统我们这里选择Linux版本选择CentOS 64位 6.虚拟名称 位置这个自己可以算便选 7.处理器这个根据你电脑情况来选如果你的电脑是八核你可以选2核或4核如果你处理器是四核你可以选1核或2核,只要不超过你电脑本身核数就行,超过了你的虚拟机就可能启动不起来,这里我选择2核 8.虚拟机内存这个也是根据你电脑自身情况来选你电脑如果有8G内存你可以选2G 或者4G 如果你电脑4G内存就选1G或2G,我们最好按推荐来,如果虚拟机内存过高会影响你电脑流畅性

hillstone现场故障处理指导手册

こ雲淡風輕ζ 提交于 2020-10-28 11:54:40
hillstone 现场故障处理指导手册 目 录 1 Hillstone厂商联系方式... 4 2 进行用户环境调查... 5 3 故障处理基本思路... 6 3.1 检查设备工作是否正常... 6 3.1.1 查状态灯... 6 3.1.2 查能否管理... 7 3.1.3 口令丢失情况下的处理... 7 3.1.4 查故障现象... 7 3.2 查软件版本... 7 3.3 查设备周边情况,排除外围因素... 7 3.3.1 检测方法... 8 3.3.1.1 移除设备... 8 3.3.1.2 单独测试... 8 4 各类故障处理... 9 4.1 硬件故障... 9 4.1.1 扩展模块故障处理... 9 4.1.2 冷却系统故障处理... 9 4.1.3 电源系统故障处理... 9 4.1.4 Console配置系统故障处理... 9 4.2 不通... 10 4.2.1 二层及以下层... 10 4.2.1.1 物理链路... 10 4.2.1.2 数据链路... 11 4.2.1.3 Vlan. 14 4.2.1.4 ARP. 15 4.2.2 三层... 17 4.2.2.1 路由测试... 17 4.2.3 应用... 18 4.2.3.1 策略... 19 4.2.3.2 特殊应用... 20 4.2.4 设备测试License到期重启问题... 20 4.3

MySQL GTID (一)

蹲街弑〆低调 提交于 2020-10-28 10:54:18
##MySQL GTID 系列之一 ###一.GTID相关概念 ####GTID:全局事务标识符,MySQL5.6版本开始在主从复制中推出的重量级特性。 ####每提交一个事务,当前执行线程都会拿到一个给定复制环境中唯一的GTID, ####GTID的格式如下: GTID = source_id:sequence_id sourceid:主服务器的唯一标识,通常用server_uuid来表示。 sequence_id:事务提交时由系统顺序分配的序列号,在Binlog中是递增且连续有序。 show master status \G ####1.1 GTID生命周期 #####1.MASTER产生GTID,保存到Binlog中。 #####2.发送Binlog到SLAVE,保存到Relay Log #####3.SQL线程从Relay Log中获取GTID,并设置为gtid_next,然后对比SLAVE端的Binlog是否有记录。 #####4.如果有记录,说明该GTID的事务已经执行,SLAVE会忽略。 #####5.如果没有记录,SLAVE就会从Relay Log中执行该GTID的事务,并记录到Binlog。 #####6.SLAVE不生成GTID ####1.2 GTID的优点 #####1.一个事务对应一个唯一ID,一个GTID在一个服务器上只会执行一次 #####2