56 lines
1.5 KiB
Go
56 lines
1.5 KiB
Go
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
|
|
// })
|
|
// })
|
|
//}
|