首页 > 解决方案 > Unity 在线多人游戏错误:连接已被对等方关闭,尝试协商集合点超时

问题描述

我正在使用 Unity 构建在线多人游戏。我使用“镜像”库。在本地使用“Telepathy”传输器开发了一段时间后(在我的计算机上打开两个实例),我决定继续使用 SteamWorks.NET 的“FizzySteamWorks”库作为传输器来进行 Steam 多人游戏。10 月 25 日,它奏效了。在这次成功之后,我继续添加功能等,但没有进行测试,因为我总是需要 Steam 多人游戏的实时 cobaye。我终于再次测试它,我在尝试连接到主机时在我的客户端上收到此错误“连接已被对等方关闭,超时尝试协商集合点”。我尝试修复它,不起作用。我回到我 25 日的承诺,我得到了同样的错误。错误来自 FizzySteamworks 库的文件,我将其复制粘贴到文件系统中,因此在我不知情的情况下无法更新。我不明白相同的代码如何在一周内从工作变为不工作,也许它来自 Steam ?或者来自被 git 忽略的文件?这是我的 .git ignore 的内容:

#
# Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
#
/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Mm]emoryCaptures/

# Asset meta data should only be ignored when the corresponding asset is also ignored
!/[Aa]ssets/**/*.meta

# Uncomment this line if you wish to ignore the asset store tools plugin
# /[Aa]ssets/AssetStoreTools*

# Autogenerated Jetbrains Rider plugin
[Aa]ssets/Plugins/Editor/JetBrains*

# Visual Studio cache directory
.vs/

# Gradle cache directory
.gradle/

# Autogenerated VS/MD/Consulo solution and project files
ExportedObj/
.consulo/
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.mdb
*.opendb
*.VC.db

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta
*.mdb.meta

# Unity3D generated file on crash reports
sysinfo.txt

# Builds
*.apk
*.unitypackage

# Crashlytics generated file
crashlytics-build.properties

以下是我的客户端控制台尝试连接时的屏幕:

我的客户错误的第一个屏幕

在此处输入图像描述

我猜,最重要的回报是这样的信息

Connection was closed by peer, Timed out attempting to negotiate rendezvous
UnityEngine.Debug:Log (object)
Mirror.FizzySteam.NextClient:OnConnectionStatusChanged (Steamworks.SteamNetConnectionStatusChangedCallback_t) (at Assets/Mirror/Runtime/Transport/FizzySteamworks/NextClient.cs:137)
Steamworks.Callback`1<Steamworks.SteamNetConnectionStatusChangedCallback_t>:OnRunCallback (intptr) (at Assets/Mirror/Runtime/Transport/FizzySteamworks/Dependencies/Runtime/CallbackDispatcher.cs:291)
Steamworks.CallbackDispatcher:RunFrame (bool) (at Assets/Mirror/Runtime/Transport/FizzySteamworks/Dependencies/Runtime/CallbackDispatcher.cs:191)
Steamworks.SteamAPI:RunCallbacks () (at Assets/Mirror/Runtime/Transport/FizzySteamworks/Dependencies/Runtime/Steam.cs:112)
SteamManager:Update () (at Assets/Mirror/Runtime/Transport/FizzySteamworks/Scripts/Steamworks.NET/SteamManager.cs:169)

其次是错误说:

The connection attempt was cancelled.
UnityEngine.Debug:LogError (object)
Mirror.FizzySteam.NextClient/<Connect>d__26:MoveNext () (at Assets/Mirror/Runtime/Transport/FizzySteamworks/NextClient.cs:80)
System.Threading.CancellationTokenSource:Cancel ()
Mirror.FizzySteam.NextClient:Disconnect () (at Assets/Mirror/Runtime/Transport/FizzySteamworks/NextClient.cs:148)
Mirror.FizzySteam.NextClient:OnConnectionStatusChanged (Steamworks.SteamNetConnectionStatusChangedCallback_t) (at Assets/Mirror/Runtime/Transport/FizzySteamworks/NextClient.cs:138)
Steamworks.Callback`1<Steamworks.SteamNetConnectionStatusChangedCallback_t>:OnRunCallback (intptr) (at Assets/Mirror/Runtime/Transport/FizzySteamworks/Dependencies/Runtime/CallbackDispatcher.cs:291)
Steamworks.CallbackDispatcher:RunFrame (bool) (at Assets/Mirror/Runtime/Transport/FizzySteamworks/Dependencies/Runtime/CallbackDispatcher.cs:191)
Steamworks.SteamAPI:RunCallbacks () (at Assets/Mirror/Runtime/Transport/FizzySteamworks/Dependencies/Runtime/Steam.cs:112)
SteamManager:Update () (at Assets/Mirror/Runtime/Transport/FizzySteamworks/Scripts/Steamworks.NET/SteamManager.cs:169)

这是我从主机控制台获得的返回,它无论如何都不会通知失败。

在此处输入图像描述

标签: c#unity3dsteammirror

解决方案


推荐阅读