归档: 2019

Nginx配置Etag

Nginx配置Etagnginx官网上说默认是开启etag的。 对于nginx,etag的格式是 unixtime-filesize 12unixtime: 文件的修改时间的unix time的十六进制filesize: 文件大小(字节)的十六进制 所以,要产生etag,必须有两个条件: 12文件时间文件大小 对于反代(包括proxy_pass, uwsgi_pass, fast-cgi等),不

运营参数说明

运营参数说明 PCU(Peak concurrent users )最高同时在线玩家人数。 ACU (Average concurrent users)平均同时在线玩家人数。 DAU(Daily Active User)日活跃用户数量。常用于反映网站、互联网应用或网络游戏的运营情况。 WAU是周活跃用户数量 MAU(monthly active users)月活跃用户人数。是在线游戏的一

yum 安装的nginx 增加模块

yum 安装的nginx 增加模块 查看编译参数 1234567nginx -Vnginx version: nginx/1.14.0built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)built with OpenSSL 1.0.1e-fips 11 Feb 2013TLS SNI support enabledconfigure argu

Nginx 根据url参数负载均衡

Nginx 根据url参数负载均衡 第三方模块ngx_http_upstream_consistent_hash 尝试使用第三方模块ngx_http_upstream_consistent_hash模块,问题: 如果某个节点挂了,则不会自动迁移到其他可用节点,致命问题。 发现nginx本身的hash就可以实现url参数负载均衡 1234567upstream wsbackend {

MP3转OGG

MP3转OGG 格式工厂 直接MP3转OGG会有很多文件转换失败,需要按照如下步骤: 先从MP3转成WAV 再从WAV转成OGG

js 集合转数组

js 集合转数组 Set 转数组 12var set = new Set([1, 2, 3, 3, 4]);Array.from(set) //输出[1,2,3,4] Map 转数组 12var m = new Map([[1, 2], [2, 4], [4, 8]]);Array.from(m); // 输出:[ [1, 2], [2, 4], [4, 8] ] 字符串 转数组 1

Nodejs moment 使用

Nodejs moment 使用 引用 1var moment = require('moment'); 当前时间 12var now = moment();var now = moment(new Date()); 通过字符串生成日期 1234var day = moment("1995-12-25");var day = moment(&qu

MongoDB 时间查询

MongoDB 时间查询Date方式查询日期大于等于2019年01月01日 1db.xxx.find({"ct":{$gte:new Date(2019,1,1)}}) ISODate方式查询日期大于等于2019年01月01日 1db.xxx.find({"ct":{$gte:ISODate(&q

Creator点击EditBox弹出虚拟键盘挡住EditBox

Creator点击EditBox弹出虚拟键盘挡住EditBox部分浏览器或app里面的webview会出现这个问题,目前的解决方案是自己监听事件移动EditBox位置 监听 Editing Did Began 和 Editing Did Ended 123456onEditBegin(event, customEventData){ this.mRootNode.y = th

app 缓存优化效果

app 缓存优化效果app 增加缓存前后打开游戏对比 游戏 NetWork Load time before cache load time after cache Game1 Wifi 00:00:05 00:00:02 Game1 Cellular (4G) 00:00:23 00:00:11 Game2 Wifi 00:00:10 00:00:01 Game2 C

JS对象引用、浅层拷贝与深层拷贝

JS对象引用、浅层拷贝与深层拷贝 使用JSON.parse()与JSON.stringify()对简单对象进行深层拷贝 123var clone = function (obj) { return JSON.parse(JSON.stringify(obj));} 对象深拷贝方法 1234567891011121314var clone = function (o

setTimeout 和 setInterval

setTimeout 和 setInterval setInterval 少用 如果setInterval执行的代码由于某种原因出了错,它还会持续不断(不管不顾)地调用该代码 setInterval无视网络延迟,仍然会按定时持续不断地触发请求 与setTimeout不同,你并不能保证到了时间间隔,代码就准能执行 setTimeout 替代 setInterval 使用链式setT

linux 查看日志关键字

linux 查看日志关键字 前n行: 1cat test.log | head -n 200  # 查看test.log前200行 尾n行: 1cat test.log | tail -n 200  # 查看test.log倒数200行 根据关键词查看日志并返回关键词所在行: 123cat test.log | grep "http"  # 返回test.lo

游戏启动黑屏时间长

游戏启动黑屏时间长 没有启动splash图片 预加载的声音文件太多 1SimpleAudioEngine::sharedEngine()->preloadEffect(soundfile.c_str()); 游戏第一个界面太复杂 安卓包里加载的第三方sdk太多,初始化不要都放到启动界面里

盒子特殊问题及要求

盒子特殊问题及要求由于盒子的水平质量参差不齐,故有如下问题需要注意: 安卓 要大于等于 22 build.gradle123compileSdkVersion 22minSdkVersion 22targetSdkVersion 22 project.properties 1target=android-22 资源异步加载的会出问题,导致资源没加载成功,图像是黑色方块了 123Armat