34 lines
848 B
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{})
|
|
}
|