goserver_sync/examples/echoserver/scpacketponghandler.go

34 lines
848 B
Go

package main
import (
"mongo.games.com/goserver/core/netlib"
"mongo.games.com/goserver/examples/protocol"
)
type CSPacketPingPacketFactory struct {
}
type CSPacketPingHandler struct {
}
func (this *CSPacketPingPacketFactory) CreatePacket() interface{} {
pack := &protocol.CSPacketPing{}
return pack
}
func (this *CSPacketPingHandler) Process(session *netlib.Session, packetid int, data interface{}) error {
if ping, ok := data.(*protocol.CSPacketPing); ok {
pong := &protocol.SCPacketPong{
TimeStamb: ping.GetTimeStamb(),
Message: ping.GetMessage(),
}
session.Send(int(protocol.PacketID_PACKET_SC_PONG), pong)
}
return nil
}
func init() {
netlib.RegisterHandler(int(protocol.PacketID_PACKET_CS_PING), &CSPacketPingHandler{})
netlib.RegisterFactory(int(protocol.PacketID_PACKET_CS_PING), &CSPacketPingPacketFactory{})
}