cocoscreator websocket示例

const { ccclass, property } = cc._decorator;

/**
 * 网络连接状态
 */
export enum NetWorkState {
    NetWorkState_NONE,
    NetWorkState_CONNECTING,
    NetWorkState_CONNECTED,
    NetWorkState_ERROR,
    NetWorkState_CLOSE,
    NetWorkState_TIMEOUT,
    NetWorkState_MAX
}

@ccclass
export class NetWork {
    private static m_sInstance: NetWork = null;

    private m_cDstIP: string = "";
    private m_pSocket: WebSocket = null;
    private m_eNetWorkState: NetWorkState = NetWorkState.NetWorkState_NONE;
    private m_vDelegates: any[] = [];
    private m_bReciveHeadMsg: boolean = false;
    private m_nHeartbeatNum: any = -1; // 心跳包句柄
    private m_nConnectNum: any = -1; // 重连句柄
    private m_bIsSendHeard: boolean = true;
    private m_vMessageCallBack: any[] = [];
    private m_nConnectCount: number = 0;//当前连接的次数(用于判断重连的提示,比如连接三次都没连接上就提示玩家检查网络)
    private m_bIsHoldClose: boolean = false;//是否是手动关闭

    private m_nforgroundCount: number = -1;
    private m_nConnectGameServerNum: number = -1;//连接逻辑服务器的句柄
    private m_nConnectGameServerNum_1: number = -1;//连接逻辑服务器的句柄


    /**
     * 连接地址
     */
    private socketIP: string = "ws://192.168.0.127:8080";


    public getSocketIP(): string {
        return this.socketIP;
    }



    /**
     * 设置是否自动连接
     * @param is 是否自动连接
     */
    public setAutoConnect(is: boolean): void {
        this.m_bIsAutoConnect = is;
    }

    private forgroundConnect(): void {
        if (this.m_nforgroundCount != -1) {
            clearTimeout(this.m_nforgroundCount);
        }
        this.m_nforgroundCount = setTimeout(() => {
            this.socketIP && this.connect(this.socketIP, false);
        }, 500);
    }

    /**
     * 应用程序进入前台
     */
    private applocationEnterForeground(): void {
        console.log("applocationEnterForeground");
        this.forgroundConnect();

    }
    /**
     * 应用程序进入后台
     */
    private applocationEnterBackground(): void {
        console.log("applocationEnterBackground");
        this.closeNetWork(true);
    }

    pu
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值