en / libunity

A gonet/2 networking library for Unity
MIT License
68 stars 30 forks source link

@en 能说下gonet2在mac 环境下配置开发么 #2

Open daotianya opened 7 years ago

daotianya commented 7 years ago

因为之前没有处理过 docker 的缘故,看作者使用的方式是 docker+mac开发方式,要想在本地 mac+docker 跑起来还是很费劲的事情,求@en 指导

1:根据作者的https://github.com/gonet2/doc/blob/master/INSTALL.md安转指南, $curl -s https://raw.githubusercontent.com/gonet2/tools/master/clone_all.sh | sh
这里应该是同步到本地代码吧?理解为 goget 一样的功能可否?

2:Docker启动服务,如果我采用gogland 编译器!本地怎么调试呢? 或者是开发方式不是这样的?

3:各个模块在 gonet2的用途,都是必须安装的么?我如果安装高级版本是否影响框架?

StatsD + Graphite + Grafana 2 + Kamon Dashboards 监控系统 http://skaka.me/blog/2015/07/21/kamon-statsd-graphite-grafana-introduction这个博主介绍了他的用处 不明白为什么是 JVM 项目可视化,怎么做到 golang 项目的执行可视化? 共享和服务发现 etcd-browser 管理 etcd

mongo 数据库 根据博主写的地址,我 mac 里面有一个 mongo 但是我还是要基于 docker 安装

这两个是处理日志的系统 ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台 https://my.oschina.net/itblog/blog/547250 stdout汇聚 http://dockone.io/article/373 https://yq.aliyun.com/articles/30344 基于Logspout+ELK实现docker日志自动化

en commented 7 years ago

我写的安装教程可能已经失效,回滚教程里gonet2组件代码到9个月前应该就不会有问题 没有在mac上使用过gonet2, mac上只做了客户端的部分工作,不过应该差不多 我自己在gonet2基础上做游戏时第三方服务是跑在docker里的, 其他所有游戏组件都是像教程里go install编译安装然后再运行调试的

  1. clone_all.sh可能还是需要的, 我写的教程里的git clone ...那几步和clone_all.sh类似,因为GOPATH的问题 参考https://github.com/gonet2/agent/issues/2, 这个按gonet2作者的习惯来吧
  2. 没用过gogland。。我是靠日志和print调试的
  3. 按照9个月前的架构,这些组件都是需要的,不然可能会启动失败,写布署步骤时应该是最小环境了
en commented 7 years ago

statsd可以参考https://github.com/gonet2/agent/blob/76de3abaaeaf1f8b0da50c36604dbe66be30eb4b/src/agent/proxy.go#L101 形成数据收集后再做可视化,这个要看自己的需求,例子里主要是监控request的处理时间

daotianya commented 7 years ago

嗯嗯,感谢,我正在mac 下架构,回头会补充一个 iss 到这里,哈哈

daotianya commented 7 years ago

还有个问题哈,刚开始学习和研究这个框架,我很难理解傅大说的几个问题,求指教 1:框架完整度怎么样 2:en 你之前的游戏类型是?作者也没用讨论游戏类型,我看他这个最大的亮点应该是全球同服!目前对战类游戏用这个架构我估计还是 OK 的, 3:前端用两个部署在不同物理服务器上的agent服务接入,无状态,客户端随机访问任意一台agent接入,比如使用DNS round-robin方式连接,这部分也需要自己慢慢改?还是说已经有了的呢?登录健全部分在架构的那一块?

en commented 7 years ago
  1. 是完整能用的,但太基础,每个游戏区别又太大,做起来就得魔改
  2. 休闲横版多人过关
  3. DNS round-robin让运维同学设置。我们用的是云平台的负载均衡拖3台4C4Gagent, 跑测试能到10万同时连接并密集请求。登录鉴权在agent
daotianya commented 7 years ago

嗯嗯,再请教个问题 客户端这边的协议是你自己实现的吧? 对应gonet2这边有没有什么修改? 我想跑起来你这个的时候

System.Net.Sockets.SocketException: Connection refused at System.Net.Sockets.Socket.Connect (System.Net.EndPoint remoteEP, Boolean requireSocketPolicy) [0x00000] in :0 at System.Net.Sockets.Socket+Worker.Connect () [0x00000] in :0 UnityEngine.Debug:Log(Object) NetCore:ConnectCallback(IAsyncResult) (at Assets/Scripts/NetLib/NetCore.cs:180) System.Net.Sockets.Worker:Connect()

是否是因为需要生产协议?

$cd /github.com/gonet2/tools/proto_scripts $./gen_proto.sh

en commented 7 years ago

看错误是连不上服务器端口 得根据你的环境修改这个ip和port https://github.com/en/libunity/blob/master/Sample/Main.cs#L10 协议是在gonet2的tools/proto_scripts/*.txt描述的,如果没改就不需要重新生成 如果改动了,就执行./gen_proto.sh, 把生成的两个cs文件拷贝过来覆盖掉

daotianya commented 7 years ago

有邮箱么 en

en commented 7 years ago

我在用户信息页加了邮箱,可以用这个