cocos creator 方法数组_Cocos Creator 通用框架设计——网络

onConnected: (event) => void = null;onMessage: (msg) => void = null;: (event) => void = null;onClosed: (event) => void = null;

connect(options: any) {if (this._ws) {if (this._ws.readyState === WebSocket.CONNECTING) {console.log("websocket connecting, wait for a moment...")return false;}}

let url = null;if(options.url) {url = options.url;} else {let ip = options.ip;let port = options.port;let protocol = options.protocol;url = `${protocol}://${ip}:${port}`;}

this._ws = new WebSocket(url);this._ws.binaryType = options.binaryType ? options.binaryType : "arraybuffer";this._ws.onmessage = (event) => {this.onMessage(event.data);};this._ws.onopen = this.onConnected;this._ws. = this.;this._ws.onclose = this.onClosed;return true;}

send(buffer: NetData) {if (this._ws.readyState == WebSocket.OPEN){this._ws.send(buffer);return true;}return false;}

close(code?: number, reason?: string) {this._ws.close;}}

NetworkTips

INetworkTips 提供了非常的接口,重连和请求的开关,框架会在合适的时机调用它们,我们可以继承 INetworkTips 并定制我们的网络相关提示信息,需要注意的是这些接口可能会被**多次调用**。

// 网络提示接口export interface INetworkTips {connectTips(isShow: boolean): void;reconnectTips(isShow: boolean): void;requestTips(isShow: boolean): void;}

NetNode

NetNode 是整个网络框架中最为关键的部分,一个 NetNode 实例表示一个完整的连接对象,基于 NetNode 我们可以方便地进行扩展,它的主要职责有:

连接维护

连接的建立与鉴权(是否鉴权、如何鉴权由用户的回调决定)

断线重连后的数据重发处理

心跳机制确保连接有效(心跳包间隔由配置,心跳包的内容由ProtocolHelper定义)

连接的关闭

数据发送

支持断线重传,超时重传

支持唯一发送(避免同一时间重复发送)

数据接收</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值