如果客户端尝试连接到缺席服务器,如何检查错误?
我的代码!
//Server
void Start () {
NetworkServer.Listen(13044);
}
//Client
NetworkClient thisclient = new NetworkClient ();
thisclient.Connect ("127.0.0.1", 13044);
thisclient.RegisterHandler(MsgType.Error, errortest);
thisclient.RegisterHandler (MsgType.Disconnect, dctest);
void errortest(NetworkMessage netMsg){
var errorMsg = netMsg.ReadMessage<ErrorMessage>();
Debug.Log("Error:" + errorMsg.errorCode);}
void dctest(NetworkMessage netMsg){
//if I run the client while the server is not present, its goes here instead of errortest
}
答案 0 :(得分:0)
您正在使用带有ErrorMessage的ReadMessage,但ErrorMessage仅在错误消息(OnError)中有效。
您的dctest功能在断开时触发,而不是在出错时触发。
Disconnect是一种特殊的MsgType(请参阅https://docs.unity3d.com/ScriptReference/Networking.MsgType.html)(如果我记得的话),它不包含任何数据。
所以回答你的问题:你已经有了结果。一切都在netMsg。
https://docs.unity3d.com/Manual/UNetMessages.html
当您使用魔杖发送/读取自定义数据时,ReadMessage函数主要用于您自己的NetworkMessages。