package main // //import ( // "bytes" // "sync/atomic" // // "google.golang.org/protobuf/proto" // "games.jiexunjiayin.com/jxjyqp/protocol" // "mongo.games.com/goserver/core/builtin/filter" // "mongo.games.com/goserver/core/logger" // "mongo.games.com/goserver/core/netlib" //) // //func init() { // netlib.RegisteErrorPacketHandlerCreator("packetdispatchhandler", func() netlib.ErrorPacketHandler { // return netlib.ErrorPacketHandlerWrapper(func(s *netlib.Session, packetid int, logicNo uint32, data []byte) bool { // if s.GetAttribute(filter.SessionAttributeAuth) == nil { // logger.Logger.Trace("packetdispatchhandler session not auth! ") // return false // } // // bs := BundleMgrSington.GetBundleSession(uint16(s.GroupId)) // if bs == nil { // logger.Logger.Trace("packetdispatchhandler BundleSession is nil! ") // return false // } // // if atomic.CompareAndSwapUint32(&bs.rcvLogicNo, logicNo-1, logicNo) { // var ss *netlib.Session // if packetid >= 2000 && packetid < 3000 { // ss = bs.worldsrvSession // } else { // ss = bs.gamesrvSession // } // if ss == nil { // logger.Logger.Trace("packetdispatchhandler redirect server session is nil ", packetid) // return true // } // //must copy // buf := bytes.NewBuffer(nil) // buf.Write(data) // pack := &protocol.SSTransmit{ // SessionId: proto.Int64(s.Sid), // PacketData: buf.Bytes(), // } // ss.Send(int(protocol.MmoPacketID_PACKET_SS_PACKET_TRANSMIT), pack) // return true // } // // //丢掉 // return false // }) // }) //}