zoukankan      html  css  js  c++  java
  • unity探索者之socket传输protobuf字节流(四)

    版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/7027659.html 

    上篇已经把socket的传输说的差不多了,这篇主要是说说断线重连,没什么好说的,直接上代码吧

     1     //断线重连功能我是用的协程,不建议用线程去重连,因为大多数时候,重连是需要告诉用户的,使用线程会导致显示很麻烦
     2     int reconnectTime = 0;//重连次数   
     3     IEnumerator Reconnect()
     4     {
     5         //关闭socket,上一篇中有定义
     6         Close();
     7         reconnectTime++;
     8         bool isSuccess = false;
     9         //重新初始化socket,获取初始化结果
    10         isSuccess = Init();
    11         if (!isSuccess)
    12         {
    13             //重连次数小于3次,则再次尝试重连
    14             //超过3次,基本可以确定网络已经断开了
    15             if (reconnectTime < 3)
    16             {
    17                 yield return new WaitForSecondsRealtime(5);
    18                 StartCoroutine(Reconnect());
    19             }
    20             else
    21                 Debug.Log("网络错误");
    22         }
    23         else
    24         {
    25             reconnectTime = 0;
    26             //创建一个临时List,存放未发送出去的消息
    27             List<byte[]> lb = new List<byte[]>();
    28             lb.AddRange(sendList);
    29             //清空原有消息集合,加入登录请求后,再加入未发送的消息
    30             sendList.Clear();
    31             //重新登录,AddSendMessageQueue上一篇中已定义
    32             AddSendMessageQueue("登录的protobuf对象", "登录的消息id");
    33             sendList.AddRange(lb);
    34         }                
    由于环境不同关系,并非所有的博客内容都会上传完整的源码,大部分的源码,大家可以到我的github主页上的UGCFramework查找

    传送门:https://github.com/wulonghao/UGCFramework
  • 相关阅读:
    java例题 汽油检测
    java常用api
    二分搜索法
    java例题
    java基础
    表单验证
    4.10 pm例题
    0805
    0731 框架Mybatis
    小结
  • 原文地址:https://www.cnblogs.com/unityExplorer/p/7027659.html
Copyright © 2011-2022 走看看