归档: 2019

Nginx配置Etag

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

500 Internal Privoxy Error

500 Internal Privoxy Error因为打开了代理软件。关掉代理软件就可以了。 解决办法是重启浏览器。

运营参数说明

运营参数说明 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 argument

Nginx 根据url参数负载均衡

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

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] ] 字符串 转数组1Array.fr

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("12-25

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(&quo

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

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

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 Cel

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

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

setTimeout 和 setInterval

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

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.log中包含http的所有

游戏启动黑屏时间长

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

盒子特殊问题及要求

盒子特殊问题及要求由于盒子的水平质量参差不齐,故有如下问题需要注意: 1. 安卓版本要求安卓要大于等于 22 build.gradle 123compileSdkVersion 22minSdkVersion 22targetSdkVersion 22 project.properties 1target=android-22 2. 资源异步加载问题资源异步加载的会出问题,导致资源没加载成功,