- 博客(21)
- 资源 (3)
- 收藏
- 关注
原创 记录一个坑了我三天Go语法导致gob解析pb的bug
写代码写多了就是犯糊涂 bug源代码和修改好的代码一张清晰的截图对比: 错误的调试信息 进行解析后报错:unexpected EOF func DispatchPacket(packet rpc.Packet) bool { xxxx... 解析代码: buf := bytes.NewBuffer(rpcPacket.RpcBody) dec := gob.NewDecoder(buf) dec.Decode(&messageNa
2022-04-25 17:58:47
871
原创 Golang服务器部署SSL超级大坑
我第一次部署golang SSL相关的东西 这2天用golang部署wss给小游戏测试 我把拿到完整的pem拆解出cert给ListenAndServeTLS传进去 为什么要拆出来用呢!? 因为ListenAndServeTLS给的传参提示是certFile string 结果我特么给ListenAndServeTLS第二个参数使用的文件居然是这货的结果! openssl x509 -in server.pem -out server.crt 结果是啥文件呢? 就是特.
2022-03-17 15:02:58
4631
原创 CocosCreator Label优化
1.需要修改引擎,参阅引擎定制工作流程 2.BITMAP缓存优化原理,参阅【乐府】突破Label的缓存模式之(1) BITMAP - Creator - Cocos中文社区 3.查看动态合图的api 运行时在console中输入 开启 cc.dynamicAtlasManager.showDebug(true); 关闭 cc.dynamicAtlasManager.showDebug(false); 4.修改记录 cocos2d/core/renderer/utils/label/tt..
2021-09-17 09:11:34
1948
原创 CocosCreator关于DrawCall数量增加逻辑
1.Sprite + 1 空的+0,多一张图片+1,多个Sprite同一张图集=1 2.Label + 1 3.RichLabel + 2 4.Particle + 1
2021-09-03 10:43:02
643
原创 CocosCreator图片载入优化
无疑之间看到这段代码,400M+的项目用了后300M+,不知道原理,莫名其妙,在此记录一下,顺便求大神解惑 cc.game.once(cc.game.EVENT_ENGINE_INITED,()=>{ let oldHandleLoadedTexture = cc.Texture2D.prototype.handleLoadedTexture; let optimizedHandleLoadedTexture = function(premultiplied){ oldHandleLoa.
2021-08-24 10:45:18
703
原创 Golang Map并发问题
今天在面试过程中遇到了一个问题:map在并发时怎么保证一致性(简化后的问题)。 这里记录一下 2大map 一个是老的map类型 一个是1.9版之后的sync.map 老的map解决办法比如 使用互斥锁,使用channel进行封装(太麻烦) sync.WaitGroup也是一个不错的选择 sync.map里面有一些常用方法需要了解一下: func syncMap(){ var sm sync.Map //向a这个key里面存111 sm.Store("a",111) //读值 s
2021-07-23 18:37:55
305
原创 分布式服务器读写数据问题
假如这段操作放到不同的微服务里去使用怎么确保数据的一致性和原子性 func change_balance(uid, amount int64){ user := getUser(uid) // user: { balance } 进行数据库查询select * from t_user where uid = uid if user.balance + amount < 0 { return errors.new("balance error") } user.balance +=
2021-07-07 14:36:21
211
转载 golang redigo并发的问题
正在开发游戏服务器 客户端是个坑,所有信息都在登录请求,导致我这边没有做连接池的redigo崩溃 redigo: unexpected response line (possible server error or unsupported concurrent read by application) 找了一天才定位到问题所在 ...
2021-05-30 22:36:20
1747
原创 解决go语言range遍历map的乱序问题
开发过程中遇到个map必须顺序遍历的时候测出了bug 然后取查询这个range排序map的问题搜到一篇文章 https://www.cnblogs.com/noKing/p/11661567.html 我截取重要部分放在这里: ==========分割线========== WHAT? 发现下面这段代码,多次运行出的结果是不一样的 1 2 3 4 5 6 7 8 9 10 11 12 13
2021-05-25 18:58:24
3444
原创 protobuf.js使用uint64类型超过16位长度decode的bug
protobuf.js使用uint64类型超过16位长度decode的bug 原版在这里: https://www.npmjs.com/package/protobufjs protobuf-library.js里有个LongBits的原型toNumber是这样写的: LongBits.prototype.toNumber = function toNumber(unsigned) { if (!unsigned && this.hi >>> 31).
2020-10-21 17:46:54
2682
原创 Node.js 搭建 HTTPS 服务器
在 Node.js 中开启一个 HTTP 服务很简单,如果想使用 Node.js 开启一个 HTTPS 的服务需要两步:一是生成签名证书,二是还需借助 Node.js 提供的系统模块 HTTPS 完成。 自签名证书 通常在企业中面向公网使用的证书通常是由全球权威 CA 机构签发的证书,受各大浏览器厂商信任。在开发测试时为了简单点我们可以自签名证书,但是这在浏览器中打开时会有安全问题提示。 使用 openssl 工具生成自签名证书。 简单分为以下几个步骤: 使用 openssl 的 genrsa
2020-10-12 17:32:14
985
转载 pomelo/pinus在linux环境上的简单部署
在pomelo目录的根目录或pinus的dist脚本生成目录创建一个随便文件名的js文件,粘贴以下代码 var masterJsonFile = require('./config/master.json'); var serversJosnFile = require('./config/servers.json'); //pomelo 源码目录 var cwd = '/home/yunyou_pinus_server/game-server/dist'; //配置运行环境 developmen
2020-08-10 10:40:21
1340
原创 修复目前CocosCreator2.3.4热更新插件以及热更新的问题
最近在做项目用的是2.3.4的CocosCreator 我用老项目(1.9.3版)的main.js覆盖到2.3.4里发现热更新各种问题,搞了好久还是出现热更新第二次打开游戏丢失文件等一系列问题。 今天无意之间看到官方文档里面的一段代码 https://github.com/cocos-creator/tutorial-hot-update // 在 main.js 的开头添加如下代码 (function () { if (typeof window.jsb === 'object') {
2020-07-08 10:24:58
2996
转载 pomelo相关的转载
今天发现的,这里面不知道有没有什么好的干货 反正我自己做的时候没参考这些 教程 nodejs+pomelo+mysql实战经验分享 简书专题:pomelo 游戏开发 Pomelo框架参考 pomelo - 寒风 - CSDN博客 专栏:pomelo入门 - CSDN博客 分类: Pomelo | Vitah's Blog remote的写法支持es6的class么 pomelo-admin-web 不能使用及其解决方案 Pomelo 常见问题集 Cocos Creator 相关 .
2020-06-22 18:18:02
285
原创 CocosCreator2.3.4,Android APP,接入穿山甲SDK的激励视频
文章时间:2020年6月13日。 工具: CocosCreator : 2.3.4 (以下简称CCC) Android Studio : 4.0 (以下简称AS) SDK : Android 9.0(Level 28) NDK : 29.0.3(最新版本是30.0.0) 本篇文章只针对CCC打包成Android应用的过程 CCC项目构建时我的选择项:(我这是竖屏游戏,各位自己构建时注意设备方向的选项) 现在基本上都是安卓9.0系统,我自己手机时安卓10,有几个同事的是安卓9,所...
2020-06-13 10:54:00
10436
2
原创 TypeScript中的HTTP协议请求与接收
无意在ts官方网站的“起步”里看到一张图片,出于好奇点进去看了一下 附上链接:https://github.com/Microsoft/TypeScript-WeChat-Starter 下面有一段代码是这样的: import * as express from "express"; import * as request from "request"; import sha1 = require("sha1"); let app = express(); // Insert metada
2020-06-06 11:10:09
6103
原创 NodeJS多种创建WebSocket监听的方式
第一种,原生自带的 //引用net库的方式 const net = require('net'); const server = net.createServer((socket)=>{ socket.on("connect",(data)=>{ console.log("connect"); }) }); server.listen("8111","127.0.0.1") //js的原生方式 const websocket = requir.
2020-06-02 11:36:48
1500
转载 cocoslua3.10升级到cocos3.17.2 记录(二)
转载自:https://www.cnblogs.com/mingfuqishi/p/11458114.html 参考:https://blog.csdn.net/shimazhuge/article/details/79848199 1.首先将cjson加入到libluacocos2d工程(cjson目录:/frameworks/cocos2d-x/external/lua) ...
2020-05-01 22:33:15
699
原创 cocoslua3.10升级到cocos3.17.2 记录(一)
原引入如下: Scheduler=require("framework.scheduler") 原调用方法如下: 查找资料后改为: cc.exports.Scheduler=cc.Director:getInstance():getScheduler() Scheduler.scheduleScriptFunc([callbackfunc],[delay],false...
2020-05-01 19:55:38
788
转载 23种设计模式总纲
设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 其实还有两类:并发型模式和线程池模式。
2017-05-31 10:27:43
424
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅