IEnumerator SendHeartBeat() { while (true) { //if (Gamnet.Session.ConnectionState.Connected == session.state) { MsgCliSvr_HeartBeat_Ntf ntf = new MsgCliSvr_HeartBeat_Ntf(); ntf.msg_seq = msg_seq++; Log("MsgCliSvr_HeartBeat_Ntf(msg_seq:" + ntf.msg_seq + ")"); session.SendMsg(ntf, true); } yield return(new WaitForSeconds(1.0f)); } }
IEnumerator SendHeartBeat() { while (true) { MsgCliSvr_HeartBeat_Ntf ntf = new MsgCliSvr_HeartBeat_Ntf(); ntf.msg_seq = msg_seq++; if (0 == ntf.msg_seq % 10) { // timeout example Log("MsgCliSvr_HeartBeat_Ntf(msg_seq:" + ntf.msg_seq + ", timeout in 5 sec)"); session.SendMsg(ntf, true).SetTimeout(MsgSvrCli_HeartBeat_Ntf.MSG_ID, 5, () => { session.Error(new Gamnet.Exception(TimeoutError, "msg_seq:" + ntf.msg_seq + " timeout")); }); } else { Log("MsgCliSvr_HeartBeat_Ntf(msg_seq:" + ntf.msg_seq + ")"); session.SendMsg(ntf, true); } yield return(new WaitForSeconds(1.0f)); } }