Cocos Creator 通用框架设计 —— 网络

如果要说准确点的话应该说是过多设计,就是代码比较多,一共有5个类呢:

  • 在单连接场景下NetManager不用也可以,但实际工作中碰到过几次这样的场景,所以提了这个类出来,可用可不用
  • NetNode是最主要的一个类,它将其他的类与网络衔接起来,可以看到它大概做了这些功能
  • 连接流程,连接完成后进行验证,这个也是可选的,因为测试阶段,在内网,我可能希望不验证
  • 验证完成,通过验证后是否对之前未发送成功的数据进行重发,比如网络断开了,这时候有个定时器触发了发送,如果不做自动重发,那么这个时候定时器的逻辑就会变得复杂
  • 数据发送,即可直接发送,也可以绑定回调,等待服务器的response
  • 协议和网络相关提示抽出来,是因为基本每个游戏的协议和表现都不一样,而每个游戏又都会有,当然,网络Tips这里可以做一个简化就是改为事件触发。
  • 最后把Socket抽出来,可以方便后面使用不同的网络底层。

通用的设计追求的是尽量满足更多的场景,使用方便。如果是恰到好处的设计,当然代码会更少一些,但适用的场景就没那么多了,对一个场景恰到好处,但对另一个场景就不大够用。更加过度的设计,至少需要为一些想象中的,实际上不存在的需求进行设计,并且在使用的过程中,会因为这些设计增加使用者的负担。这里所考虑的需求,应该还算是具有一定的普遍性的。:grin:

2赞

mask

强!!

mark

马克~~~

666666,mark

mark

mark

今天我尝试做一遍,发现了好多属性都没有声明或者定义,我不是很明白,贴出来了

你可以 https://github.com/wyb10a10/cocos_creator_framework 这里的代码下载下来运行

1赞

mark

能不能做个node.js的server,
来当作sample。

mark

mark

我目前的框架类。设计了个AppMain的静态类. 重写了cc.component. 这样就可以把一下初始化工作放到这里面去做

1赞

目前用业余时间在酝酿一个RTS游戏,那个算是一个非常完整的大sample,不过这个估计要憋好久,加班还是太多

扔下一句话,也不说具体问题,也不参与讨论,吐槽一下就走,社区不需要你这样的人,如果都是你这样不分享只吐槽的,那社区就完蛋了,不过还好,cocos社区里大多数是爱分享的,你这样的是少数。

支持并mark:smile:

mark一下

只需要有heartbeat,
和一种request和response的node.js server就足够了,
这范例就够完整了。