public virtual void client_rpc_Handle(BinaryMessage action) { try { using (var buffer = MemoryStreamObjectPool.AllocAutoRelease(action.DataSegment)) using (var input = IOStreamObjectPool.AllocInputAutoRelease(base.ServerCodec.Factory, buffer)) { var roleID = input.GetUTF(); var player = GetPlayer(roleID); if (player == null) { return; } //drop 4 for bytes size// buffer.Position += 4; player.client_rpc_Handle(buffer); } } catch (Exception e) { log.Error(e.Message, e); } }