# TapBattleClient.Disconnect

# 功能描述

断开与多人联机服务器的连接。通常在不再需要使用多人联机功能、应用退出或长时间不使用时调用。

# 方法签名

public static void Disconnect(BattleOption option)

# 参数说明

# BattleOption

参数名 类型 必填 说明
success Action<TapCallbackResult> 断开连接成功回调
fail Action<TapCallbackResult> 断开连接失败回调
complete Action<TapCallbackResult> 断开连接完成回调(无论成功失败)

# 使用说明

# 断开时机

  • 退出到主菜单时
  • 应用切换到后台长时间后
  • 不再需要多人联机功能时
  • 调用FinalizeSDK前(可选,FinalizeSDK会自动断开)

# 注意事项

  • 自动离开房间 - 断开连接会自动离开当前房间
  • 丢失playerId - 断开后playerId失效,重新连接会获得新的playerId
  • 建议顺序 - 最好先调用LeaveRoom,再调用Disconnect

# 代码示例

# 示例1:基础断开

using UnityEngine;

public class ConnectionManager : MonoBehaviour
{
    public void DisconnectFromServer()
    {
        TapBattleClient.Disconnect(new BattleOption
        {
            success = (result) => {
                Debug.Log("已断开与服务器的连接");
            },
            fail = (result) => {
                Debug.LogError($"断开连接失败: {result.errMsg}");
            }
        });
    }
}

# 最佳实践

  1. 按顺序清理 - 建议先LeaveRoom,再Disconnect,最后FinalizeSDK
  2. 错误容忍 - 即使断开失败,也应继续后续的清理步骤
  3. 状态重置 - 断开后记得清除本地的playerId等状态数据
  4. 应用生命周期 - 在OnApplicationPause或OnApplicationQuit时考虑断开连接

# 相关API