- 博客(193)
- 收藏
- 关注
转载 JS算法之深度优先遍历(DFS)和广度优先遍历(BFS)
深度优先遍历(Depth-First Search)js实现该算法代码(递归版本):function deepFirstSearch(node,nodeList) { if (node) { nodeList.push(node); var children = node.children; for (var i = 0; i < children.length; i++) //每.
2021-09-16 21:25:51
469
转载 [APK签名] apksigner 重新签名
apksigner 对APK签名Android打渠道包时,经常先打一个母包,解压这个母包,完成渠道信息的注入后,需要对APK重新签名,这时就会用到jarsigner 或者 apksigner。打包涉及到两个签名工具 jarsigner、 apksigner,其对应的签名方案如下:v1 方案:基于 JAR 签名,采用的签名工具为 jarsignerv2 方案:APK 签名方案 v2,在 Android 7.0 引入,采用的签名工具为 apksignerv3 方案:APK 签名方案v3,在 And
2021-08-18 18:43:12
559
转载 nginx 域名转发
user www-data;worker_processes auto;pid /run/nginx.pid;events { worker_connections 768; # multi_accept on;}http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # serv.
2021-03-16 20:25:37
301
原创 解决win10下WinSCP老是断线重连
在使用WinSCP时,隔了几分钟没在上面操作,连接就会断开,每次都需要重新链接,比较麻烦。在网上搜了一下,可以设置一定时间内请求一次连接。这样连接就不会断掉了。设置重连时间设置keepalives编辑站点,选择高级,在连接选项中,选择发送空SSH包,间隔秒数选择30秒。...
2021-03-16 20:24:35
824
转载 Ubuntu16.04安装最新版nodejs
更新ubuntu软件源# Ubuntu 16.04 TLS,执行以下命令:sudo apt-get updatesudo apt-get install -y python-software-properties software-properties-commonsudo add-apt-repository ppa:chris-lea/node.jssudo apt-get update# Ubuntu 18.04 TLS,执行以下命令:sudo apt-get updatesu
2021-03-16 20:23:07
1315
1
转载 ppk和pem文件互转
ppk -> pemPuTTY format private key file (.ppk) to OpenSSH (.pem)pem key其实就是openssh的keyDownloadPuttyGen Click on Load Browse to your .ppk file Enter the password Click on Conversions at the top of the screen Export OpenSSH Keypem -&...
2021-03-16 20:20:28
684
原创 Android中判断联网状态
// 获取网络状态 public static int getNetworkType() { Log.d("gmlog", "getNetworkType "); AppActivity appActivity = AppActivity.getInstance(); ConnectivityManager connManager = (ConnectivityManager) appActivity.getSystemService(Conte..
2021-03-06 14:18:59
284
转载 js中函数(方法)注释
什么时候对函数进行注释不一定说任何函数方法都必须使用JSDoc,但是有一点要注意如果是自己封装的方法,有必要使用JSDoc,理由是可以让其他成员更容易的去了解你封装的方法的属性或返回值,这样可以降低维护成本和提高开发效率。编码实战说明:函数(方法)注释也是多行注释的一种,但是包含了特殊的注释要求,参照JSDoc语法:/** * 函数说明 * @关键字 */常用注释关键字:(只列出一部分,并不是全部)注释名 语法 含义 示例 @f...
2021-03-04 10:08:50
6041
2
原创 cocos wss 证书配置
客户端 var pemUrl = cc.url.raw("resources/hszz4.cer"); if (cc.loader.md5Pipe) { pemUrl = cc.loader.md5Pipe.transformURL(pemUrl) console.log("wwwwwwwwwwwwww") console.log(pemUrl) let ws = new WebSocket
2021-01-21 15:26:08
1182
1
原创 配置阿里云负载均衡下的wss websocket
应用在ssl的环境下,调用websocket服务,必须使用wss。首先。在负载均衡下,本身的websocket应用程序不用加载域名证书。直接启动ws的服务就可以了。 需要在负载均衡下,配置端口侦听。侦听采用https协议,并指定证书。【重点】健康检查钩选http_4xx 很重要。 注意防火墙要打开相应的端口。 经过以上设置,就可以在https的页面中使用对应的wss服务了。注意。如果超过1分钟没有消息传输,负载均衡会关闭链接,因此,需要在页面上做相应的处理。...
2021-01-21 11:51:03
1266
转载 行为树(Behavior Tree)– 基本概念
我想通过一个例子来介绍一下行为树的基本概念,会比较容易理解,看下图:这是我们为一个士兵定义的一颗行为树(可以先不管这些绿圈和红圈是干吗的),首先,可以看到这是一个树形结构的图,有根节点,有分支,而且子节点个数可以任意,然后有三个分支,分别是巡逻(Patrol),攻击(Attack),逃跑(Retreat),这个三个分支可以看成是我们为这个士兵定义的三个大的行为(Behavior),当然,如果有更多的行为,我们可以继续在根节点中添加新的分支。当我们要决策当前这个士兵要做什么样的行为的时候,我们就会自顶
2020-12-20 17:57:20
893
转载 cocoscreator 中 spine局部换皮
1 多attachment切换 let goblingirl = this.spine2.findSlot("left-arm"); let attachment = goblingirl.getAttachment(); let gun = this.spine.findSlot('gun'); gun.setAttachment(attachment);优点:web、native等多端统一代码。缺点:随着可换装的部位越多、同一个部位皮肤越多,动画文件变得越来越大,由于spine动画文
2020-12-19 20:14:38
4458
4
转载 YAML 语言教程
一、简介YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。它的基本语法规则如下。大小写敏感 使用缩进表示层级关系 缩进时不允许使用Tab键,只允许使用空格。 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可#表示注释,从这个字符一直到行尾,都会被解析器忽略。YAML 支持的数据结构有三种。对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary) 数组:一组按.
2020-12-18 16:24:36
222
1
原创 aes 和 rsa
rsa链接:https://pan.baidu.com/s/1cbxUl4dBdVgtNvUxsajQUA提取码:9elm复制这段内容后打开百度网盘手机App,操作更方便哦aes链接:https://pan.baidu.com/s/1zQAMIkHciB8UT2tW6qd1eA提取码:ogt4复制这段内容后打开百度网盘手机App,操作更方便哦使用方式 aesJm() { // AES加密 let str = Crypt...
2020-12-16 14:53:44
494
原创 nodejs tinypng 压缩
/** * 帮助文档 * ------- * * 获取帮助 * 指令 -h * * 获取命令执行文件夹 * 指令 -f * 参数 ./ * 必填,待处理的图片文件夹 * * 获取是否深度递归处理图片文件夹 * 指令 -deep * 可选,默认不深度递归 * * 命令行脚本参考示例 * > node ./tinypng.js -f ./test -deep * */const fs = require('fs');const path = re.
2020-11-10 20:02:36
642
原创 关于nodejs解决服务器跨域的方法
首先,什么是跨域?浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域;那么,如何解决跨域呢?1、采用jsonp方法解决跨域,2、在服务器端利用nodejs设置头文件header来解决跨域,实例代码如下:const http = require(“http”);http.createServer((req,res)=>{res.setHeader(“Access-Control-Allow-Origin”, “*”);res.setHeader(“Ac
2020-11-10 09:23:39
511
转载 【Node】CentOs搭建NodeJs服务器—PM2安装
序言:由于Node是单线程,服务如果挂掉服务线程也就没了,pm2是一个进程管理工具,可以用它来管理你的node进程。PM2的主要功能内建负载均衡(使用Node cluster 集群模块) 后台运行 0秒停机重载,我理解大概意思是维护升级的时候不需要停机. 停止不稳定的进程(避免无限循环) 控制台检测 提供 HTTP API 远程控制和实时的接口API ( Nodejs 模块,允许和PM2进程管理器交互 )1.全局安装pm2任意目录下执行命令,pm2安装目录在node安装目录下bin
2020-11-07 15:35:37
284
原创 阿里云ECS服务器CentOS7上安装MySql服务
阿里云ECS服务器CentOS7上安装MySql服务----------------------------------------------使用root登录1.确保服务器系统处于最新状态[root@localhost ~]# yum -y update如果显示以下内容说明已经更新完成Replaced: grub2.x86_64 1:2.02-0.64.el7.centos grub2-tools.x86_64 1:2.02-0.64.el7.centos...
2020-11-07 11:48:10
210
转载 CentOS7安装NodeJS
直接部署首先安装wgetyum install -y wget如果已经安装了可以跳过该步下载nodejs最新的bin包可以在下载页面https://nodejs.org/en/download/中找到下载地址。然后执行指令wget https://nodejs.org/dist/v9.3.0/node-v9.3.0-linux-x64.tar.xz然后就是等着下载完毕。另外你也可以在你喜欢的任意系统上下载最新的bin包,然后通过FTP上传到CentOS上。解压包依次执行x.
2020-11-07 11:45:41
329
1
转载 nodejs连接mysql突然中断问题解决方案
db/index.js数据库配置文件一、在数据库连接失败的情况下,回调函数,再次发起连接,直到连接成功为止。handleDisconnect(){ this.connection.connect(function(err) { if(err) { // console.log('error when connecting to db:', err);
2020-11-06 16:01:07
1082
2
转载 Htnl Flex 布局
一、Flex 布局是什么?Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。.box{ display: flex;}行内元素也可以使用 Flex 布局。.box{ display: inline-flex;}Webkit 内核的浏览器,必须加上-webkit前缀。.box{ display: -webkit-flex; /* Safari */
2020-09-26 10:08:56
134
原创 Cocos Creator TypeScript 序列化自定义类型
查看creator.d.ts中导出的ccclass函数:@ccclass("MyName")class MyName { @property(cc.Label) label: cc.Label = null; @property() aa: string = "wwwwww";}
2020-09-08 16:56:14
982
原创 vscode Experimental support for decorators is a feature that is
Experimental support for decorators is a feature that is subject to change in a future release.Set the 'experimentalDecorators' option to remove this warning.勾选 experimentalDecorators
2020-09-08 10:06:31
266
原创 es6 async 简要用法
// 如果它等到的不是一个 Promise 对象,那 await 表达式的运算结果就是它等到的东西。 // 如果它等到的是一个 Promise 对象,await 就忙起来了,它会阻塞后面的代码,等着 Promise 对象 resolve,然后得到 resolve 的值,作为 await 表达式的运算结果。 ///////////////////////////////////////////////// // 异步调用 ...
2020-09-07 19:40:11
152
原创 es6 动态字符串模板
let templateStr = "Hello ${k1} is ${k2 * 2}";let result = this.test(templateStr, ['k1', 'k2'], ['Jack', 8]);test(templateStr, keys, strs) { keys.forEach((v, index) => { templateStr = templateStr.replace( v, "t." + v); }.
2020-09-04 21:46:33
613
原创 cocoscreator 加载场景进度
Cocos creator 2.0版本之前cc.loader.onProgress = function (completedCount, totalCount, item){ //先开监听 this.loading.progress = completedCount/totalCount; this.loadLabel.string = Math.floor(completedCount/totalCount * 100) + "%";}.bind(this); c
2020-08-09 15:08:01
1053
转载 Backgroundworker与Thread的区别
最近项目要用到,窗体Form程序要在后台开启几个子线程,负责和其他端进行通信,异步读写,并且来更改UI。在网上查了有Backgroundworker与Thread两种方法。1.BackgroundworkerBackgroundWorker是微软的在.net Framwork中添加的一个组件,主要对线程的访问提供了一种安全的方式。简单的说就是对Thread的一次封装。首先介绍一下BackgroundWorker的相关属性和方法: 属性: WorkerReportsProgr...
2020-06-30 14:30:32
994
转载 C#实现鼠标悬停在listview某项时弹出toolTip提示
/// <summary>/// listView item鼠标悬停事件/// </summary>private void listView1_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e){ ToolTip toolTip = new ToolTip(); string itemInfor = "编\t号:" + e.Item.SubItems[0].Text +.
2020-06-24 12:21:24
1233
2
原创 C# Invalidate() Update() Refresh()的区别
Control.Invalidate方法:使控件的特定区域无效并向控件发送绘制消息。通常情况下,用Invalidate()使区域无效就可触发该控件的重画了,但在一些条件下却没有触发重画.例如:private void button1_Click(object sender, EventArgs e){textBox1.Text = "888";textBox1.Invalidate();//textBox1.Update();// textBox1.Refresh();Thread
2020-06-24 11:25:17
1629
转载 C#调用默认浏览器打开网页的几种方法
方法一:从注册表中读取默认浏览器可执行文件路径 private void button1_Click(object sender, EventArgs e) { //从注册表中读取默认浏览器可执行文件路径 RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command\"); string s = key.GetV
2020-06-16 14:05:27
522
原创 unity 导出游戏符号表
符号表位置脚本放在 Editor 目录下,然后导出安卓工程的时候会有using UnityEngine;using System.Collections;using UnityEditor.Callbacks;using UnityEditor;using System.IO;using System;public class MyBuildPostprocessor{ [PostProcessBuildAttribute()] public static vo
2020-06-10 10:00:09
2708
2
原创 js 的字符串替换
// 只替换第一个匹配var str1 = " aa bb aa vv aa";var str1Replace = str1.replace("aa","nn");// 替换所有 var strdd = "#SPE# aa #SPE# ssddfsd #SPE#"; var sff = strdd.replace(new RegExp("#SPE#","gm"),"bbb");
2020-06-08 09:53:48
143
转载 Unity3D–Texture图片空间和内存占用分析
我打包多种类型的项目,空项目和10张放在Resources文件夹中的图为比较案例。以下是比较数据。IPHONE:1.空项目—-空间占用量42.3MB—-IPA大小10MB2.10张1200*520无压缩Texure 单张图占用量2.8MB—-空间占用量70.2MB—-IPA大小22.9MB3.10张1200*520压缩成1024*1024PVRTC4 单张图占用量0.5MB—-空间占用量47.3MB—-IPA大小13.2MB4. 10张1024*1024无压缩Texture 单张图占用量
2020-06-02 19:20:39
950
原创 Unity C#调用so文件
1.so源文件1.1 NaviteCode.h#ifndef __NativeCode_H__#define __NativeCode_H__#if 0#define EXPORT_DLL __declspec(dllexport) //导出dll声明#else#define EXPORT_DLL #endifextern "C" { EXPORT_DLL int MyAddFunc(int _a, int _b); EXPORT_DLL char* GetPkey();
2020-05-28 17:51:34
3253
1
原创 Unity jni 获取签名 hashcode
static public string GetAndroidSignature() { string hashCodeStr = ""; //#if UNITY_EDITOR // Debug.Log("GetAndroidSignature UNITY_EDITOR"); //#elif UNITY_ANDROID // 获取Android的..
2020-05-26 11:56:22
543
原创 Unity dll 使用及加密
生成dll首先参考Unity3D游戏开发之C++插件接入有所不同的地方,vs2017 新建的方式下一步其它的一样注意[DllImport("Native4Unity")] Native4Unity 是导出的 dll文件名加密DLL使用.NET Reactorhttps://www.eziriz.com/reactor_download.htm成功后会多一个_Secure 后缀的文件夹...
2020-05-26 11:55:05
944
1
原创 Newtonsoft—Json.NET常用方法简述
0.Json.NET基础用法 首先去官网下载最新的Newtonsoft.Json.dll(也可以使用VS自带的NuGet搜索Json.NET下载(下载下图第二个))并引用至项目。(1)序列化实体类(将实体类对象序列化为Json字符串)using System;using Newtonsoft.Json;namespace Json_NET_Test{ /// <summary> /// 定义一个实体类 /// </summary>.
2020-05-21 09:55:41
757
转载 let与var的区别
1.let作用域局限于当前代码块{ var str1 = "小花"; let str2 = "小明"; console.log(str1); //小花 console.log(str2); //小明}console.log(str1); //小花console.log(str2); //Error:str2 is not definedlet作用域仅限于当前代码块,而var的作用域是全局的2.let作用域不会被提升{ console.l.
2020-05-17 21:46:28
707
转载 Js 日期格式化
/** *对Date的扩展,将 Date 转化为指定格式的String *月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符, *年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) *例子: *(new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 *(new Date()).Format("yyyy-M-d h:m:s.S.
2020-05-13 21:18:57
118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人