Photon PUN和Photon Server连接问题及解决方法(Unity开发)

报错关键词:CENetThreadPool::Process - Exception; Unexpected protocol
相关关键词:Unity;Photon;PUN;MMO

1. 背景

在开发多人在线网络游戏的项目中,使用Photon PUN 2 作为客户端SDK,Photon Server (V4) 作为服务器端的SDK,它们之间的连接遇到了下文的问题。

2. 问题

在 Photon-LoadBalancing-xxx.log文件中报错,如下图:
在这里插入图片描述
报错的部分文本如下:

11448: 20:18:26.647 - 000000000B69F8A0: id = 0 [0] disconnected due to exception
11448: 20:18:26.648 - CENetThreadPool::Process - Exception - CENetPeerBase::HandleIncomingCommands() - PeerAppSelection()- Init: Unexpected protocol, expected value is between 1.2 and 1.7 : id = 0 [0] Datagram: 00 00 00 02 00 00 08 51 6B E2 FB CC 01 FF......
11448: 20:19:24.866 - 000000000B69EAA0: id = 1 [0] disconnected due to exception
11448: 20:19:24.866 - CENetThreadPool::Process - Exception - CENetPeerBase::HandleIncomingCommands() - PeerAppSelection()- Init: Unexpected protocol, expected value is between 1.2 and 1.7 : id = 1 [0] Datagram: 00 01 00 02 00 00 08 21 41 7B A4 DF 01 FF ......
6292: 20:20:36.574 - CThreadPool::Process - Exception - PeerAppSelection() - Init: Unexpected protocol, expected value is between 1.2 and 1.7
13852: 20:20:49.653 - CThreadPool::Process - Exception - PeerAppSelection() - Init: Unexpected protocol, expected value is between 1.2 and 1.7
6292: 20:21:03.261 - CThreadPool::Process - Exception - PeerAppSelection() - Init: Unexpected protocol, expected value is between 1.2 and 1.7
6292: 20:21:25.355 - CThreadPool::Process - Exception - PeerAppSelection() - Init: Unexpected protocol, expected value is between 1.2 and 1.7
6292: 20:21:34.544 - CThreadPool::Process - Exception - PeerAppSelection() - Init: Unexpected protocol, expected value is between 1.2 and 1.7
11448: 20:22:22.933 - 000000000B69F8A0: id = 2 [0] disconnected due to exception
11448: 20:22:22.933 - CENetThreadPool::Process - Exception - CENetPeerBase::HandleIncomingCommands() - PeerAppSelection()- Init: Unexpected protocol, expected value is between 1.2 and 1.7 : id = 2 [0] Datagram: 00 02 00 02 00 00 08 45 30 4C 65 87 01 FF......
11448: 20:22:26.279 - 000000000B69EAA0: id = 3 [0] disconnected due to exception

作为小白,一开始我也看不懂什么原因,经过多方努力查明了原因:协议序列化编码问题。主要是客户端和服务器端的版本适配的不是很好,需要我们手动操作一下。

3. 方法

在发起连接请求前,设定一下序列化协议的版本,如下的第一行代码:

PhotonNetwork.NetworkingClient.LoadBalancingPeer.SerializationProtocolType = ExitGames.Client.Photon.SerializationProtocol.GpBinaryV16;
isConnecting = PhotonNetwork.ConnectUsingSettings();

4. 结束语

希望本文对那些基于Photon技术开发、Unity开发的小白有所有帮助,少走弯路,节约时间。
欢迎大家交流技术问题。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lofit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值