在我的项目里需要从服务端向客户端发送整个道具表的数据,大概300条。
在服务端这边我的处理是将数据转为json作为字典的value装入字典来进行传输。
但客户端这边收数据的时候报错:
OverflowException: Number overflow.
ExitGames.Client.Photon.Protocol.DeserializeString (System.IO.MemoryStream din)
ExitGames.Client.Photon.Protocol.Deserialize (System.IO.MemoryStream din, Byte type)
ExitGames.Client.Photon.Protocol.DeserializeParameterTable (System.IO.MemoryStream memoryStream)
ExitGames.Client.Photon.Protocol.DeserializeOperationResponse (System.IO.MemoryStream memoryStream)
ExitGames.Client.Photon.PeerBase.DeserializeMessageAndCallback (System.Byte[] inBuff)
ExitGames.Client.Photon.EnetPeer.DispatchIncomingCommands ()
ExitGames.Client.Photon.PhotonPeer.DispatchIncomingCommands ()
ExitGames.Client.Photon.PhotonPeer.Service ()
PhotonEngine.Update () (at Assets/Script/PhotonEngine.cs:147)
猜测是数据量过大的原因,通过实验减少发送的数据数量后就能正常收到,将300条拆分成两个150条也正常。
貌似photon进行数据传输时字典的单个value的string类型长度有限制?
请问,photonserver应该怎样处理这种大量数据的传输问题呢?
手动来拆分数据貌似扩展性很差,当数据继续增长后又得来拆一次。
请问老师有没更好的解决方案。
可以通过配置文件修改数据大小
https://doc.photonengine.com/zh-tw/onpremise/current/operations/server-config-settings
这个是官方的配置文件,你可以研究下怎么配置