问题描述:
游戏公测,玩家大概有几百个.运行一小段时间,大概是20分钟左右或最多半个小时,服务端就卡住了....卡住较长时间,之后又会变正常一小会儿
查问题过程:
经过对运行日志的分析,程序执行到给客户端socket写数据的时候会一直卡住,然后报错,具体错误已忘记, 大概是写超时之类的....即一个玩家的socket异常导致所有玩家的异常.
问题产生原因: 对socket机制了解应用不够彻底. 框架设计不合理.不能因为一个玩家的异常导致全服卡住....解决过程:
socket机制问题暂时不处理. 应该是socket异常则直接断开链接, 不进行重连之类的处理.虽然客户体验不够友好....每个玩家都是只处理自己的问题,如果有影响到其它玩家的数据, 那么也只能是交给所影响的玩家自行处理数据.