17 金庆

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 1k+

Unity使用异步grpc

Unity使用异步grpc(金庆的专栏 2020.6)Unity 保证 async 方法运行在主线程中,所以用异步方式调用 grpc 可以大大简化网络通信的代码。以下示例中将 grpc 的 RouteGuide 示例移到 Unity 中运行。https://github.com/grpc/grpc/tree/master/examples/csharp/RouteGuide其中 Main() 中的代码移到 Start() 中运行,阻塞调用改成异步调用, GetFeature() 改成 GetFea

2020-06-22 15:17:27

grpc外部负载均衡器测试

grpc外部负载均衡器测试(金庆的专栏 2020.4)grpc 对每个请求进行负载均衡。负载均衡的方式有:代理模式客户端实现外部负载均衡参考:gRPC LB https://blog.csdn.net/xiaojia1100/article/details/78842295gRPC 中负载均衡的主要机制是外部负载均衡。gRPC 定义了外部负载均衡服务的接口:https://gi...

2020-04-17 10:03:58

有房间匹配和无房间匹配

有房间匹配和无房间匹配(金庆的专栏 2020.4)网游的匹配可以分为2种:有房间匹配和无房间匹配。有房间匹配请求匹配即搜索并加入一个房间,或者开一个新房间。匹配过程中可以看到房间人数增加。可以列出其他房间,加入指定房间,如棋牌类大厅可以无需等待人满即开始,开始后还可以继续加人无房间匹配请求匹配即进入等待状态,匹配成功才能看到所有人匹配成功, 如人满了, 才可以进入游戏...

2020-04-09 14:34:01

数组make参数错误

数组make参数错误(金庆的专栏 2020.3)用 mgo 的 Bulk 接口操作 mongodb 的代码,在 mongodb 4.2 正常,而连 mongodb 2.6 报错:error parsing element 0 of field documents :: caused by :: wrong type for '0' field, expected object, found...

2020-03-19 13:36:14

试用 go test suite

试用 go test suite(金庆的专栏 2020.3)github.com/stretchr/testify/suite 提供了测试套件功能,可以在整个套件开始结束时执行动作,也可以在每个测试开始结束时执行动作。假设有以下2个函数需要测试:func foo() { fmt.Printf("foo...\n")}func goo() { fmt.Printf("goo......

2020-03-13 12:03:18

go不要导出channel

go不要导出channel(金庆的专栏 2020.3)导出 channel 的包都比较难用。平常也不会将接口设计成 channel.以下摘自:https://studygolang.com/articles/12135?fr=sidebar不要导出并发原语Go 提供了非常易于使用的并发原语,这也导致了它被过度的使用。我们主要担心的是 channel 和 sync package 。有的...

2020-03-10 15:55:42

go代码覆盖测试

go代码覆盖测试(金庆的专栏 2020.2)假设应用名为 MyMod, 主函数的文件为 main.go, 那就创建如下的 main_test.go 文件:package main/* 测试整个服务器。 go test -c -covermode=count -coverpkg ./...生成 MyMod.test.exe. 复制到 bin 目录下运行: MyMod.test.exe...

2020-02-29 09:07:27

考察go一致性hash库

考察go一致性hash库(金庆的专栏 2020.2)github 搜 consistent, 按星数依次察看stathat/consistentConsistent hash package for Go.stathat 应该是个数据统计的云服务。consistent被认为是生产可用的。所有文档都在 godoc. 示例和接口简洁易懂。lafikl/consistentA Go li...

2020-02-22 11:38:49

将go函数指针转为接口

将go函数指针转为接口(金庆的专栏 2020.2)golang 中的接口如下:type Writer interface { Write func(p []byte) (n int, err error)}一般API参数要求一个接口,而不是一个函数指针,如 io.Copy() 需要输入一个 Writer 和 Reader:func Copy(dst Writer, src R...

2020-02-13 14:33:44

golang chan 关闭时的原则

golang chan 关闭时的原则(金庆的专栏 2020.X)golang 程序中检测到 DATA RACE, 是 chan 关闭和发送冲突:==================WARNING: DATA RACEWrite at 0x00c000098010 by goroutine 68: runtime.closechan() /usr/lib/golang/sr...

2020-01-08 19:42:59

查找内存错误

查找内存错误(金庆的专栏 2019.12)服务器进程有个偶发的崩溃,breakpad 上传的 minidump 显示调用栈不是出错的代码点,怀疑是内存错误。从日志分析可能触发出错的指令,然后在内网调试环境下测试,很幸运地连续有几次很容易重现了。后来反复测试可知,发送某个特殊 GM 指令 200 次就会出现一次错误,一般会在 100 次内出现。但是以代码反复执行千次万次都不能重现,估计与时...

2019-12-16 17:59:17

std::thread 中的异常会丢失调用栈

std::thread 中的异常会丢失调用栈(金庆的专栏 2019.9)主函数中的异常生成core文件能看到调用栈,但是 std::thread 子线程中的异常生成 core 文件的调用栈如下:Program received signal SIGABRT, Aborted.[Switching to Thread 0x7f18f00ab700 (LWP 32340)]0x00007f...

2019-09-26 17:17:36

SVN重命名时不要更改内容

SVN重命名时不要更改内容(金庆的专栏 2019.9)svn rename 某个文件并更改内容后提交,历史就会丢失。如果 svn rename 后不改内容,立即提交,就可以延续原有历史。所以改名这样的操作应该独立提交一次。git 改名就强大多了,会比较内容确定其原来的文件。但更改太多也会判断出错。...

2019-09-20 14:42:29

golang net Windows 还不支持自定义dns

golang net Windows 还不支持自定义dns(金庆的专栏 2019.4)See: https://github.com/golang/go/issues/29621使用 consul 注册服务,可使用 consul 的 DNS 解析到服务的地址。但是 golang 直到 1.12 仍然在 Windows 上无法使用自定义的 DNS 服务,并且没有计划支持。例如本机 127....

2019-04-20 10:49:50

用赋值代替 protobuf CopyFrom()

用赋值代替 protobuf CopyFrom()示例:Replace protobuf CopyFrom with assignmentprotobuf 生成的 C++ 代码中,因为 CopyFrom() 可以接受任何 Message 作为参数,所以有可能在2个不同类型的消息之间复制。 void CopyFrom(const ::google::protobuf::Message&am...

2019-04-04 17:54:13

open-match匹配流程

open-match匹配流程(金庆的专栏 2019.1)https://github.com/GoogleCloudPlatform/open-matchopen-match 是一个通用的游戏匹配框架。由游戏提供自定义的匹配算法(以docker镜像的方式提供)。分为多个进程,各进程之间共享一个 redis.前端, 接收玩家加入 redis,成功后通知玩家房间服地址后端,设置一局游戏...

2019-01-31 10:18:19

试用 go mod

试用 go modGo 1.11 支持 module.代码不需要在 GOPATH/src 目录下。先初始化模块,生成 go.modE:\tempλ mkdir -p testmod\helloE:\tempλ cd testmod\hello\E:\temp\testmod\helloλ go mod init github.com/jinq0123/hellogo: cr...

2018-12-26 10:00:42

grpc加TLS加密和令牌认证

grpc加TLS加密和令牌认证(金庆的专栏 2018.11)用 golang 创建 grpc 服务,开启 TLS 加密,并采用令牌认证。然后用 C++ 和 golang 分别创建客户端连接服务器。参考:https://segmentfault.com/a/1190000007933303服务器import ( ... grpc_auth "github.com/grpc-ecos...

2018-11-26 10:32:20

vs2017 linux 编译输出改成 vs 格式

vs2017 linux 编译输出改成 vs 格式(金庆的专栏 2018.11)#!/usr/bin/python # -*- coding: utf-8 -*- '''gcc2vs.py功能:将剪切板中gcc的编译输出格式转成vs格式,用于vs跳转到错误行。vs2017 linux 编译输出为 gcc 格式,无法点击跳转,如:/var/tmp/src/db...e/Lin...

2018-11-21 10:39:57

解决vs2017无法安装问题

解决vs2017无法安装问题(金庆的专栏2018.11)从官网下载了vs_community__1600125377.1541561546.exe,但是运行安装时无法出现产品选择界面。查看Temp目录下的日志,没有发现错误。搜索一下,发现有大量的同类错误:VS:HowtofixstuckVisualStudioCommunityinstallationpro...

2018-11-12 10:16:23

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。