PingHandle handle ping msg from peer
(data *msgTypes.MsgPayload, p2p p2p.P2P, pid *evtActor.PID, args ...interface{})
| 127 | |
| 128 | //PingHandle handle ping msg from peer |
| 129 | func PingHandle(data *msgTypes.MsgPayload, p2p p2p.P2P, pid *evtActor.PID, args ...interface{}) { |
| 130 | log.Trace("[p2p]receive ping message", data.Addr, data.Id) |
| 131 | |
| 132 | ping := data.Payload.(*msgTypes.Ping) |
| 133 | remotePeer := p2p.GetPeer(data.Id) |
| 134 | if remotePeer == nil { |
| 135 | log.Debug("[p2p]remotePeer invalid in PingHandle") |
| 136 | return |
| 137 | } |
| 138 | remotePeer.SetHeight(ping.Height) |
| 139 | |
| 140 | height := ledger.DefLedger.GetCurrentBlockHeight() |
| 141 | p2p.SetHeight(uint64(height)) |
| 142 | msg := msgpack.NewPongMsg(uint64(height)) |
| 143 | |
| 144 | err := p2p.Send(remotePeer, msg) |
| 145 | if err != nil { |
| 146 | log.Warn(err) |
| 147 | } |
| 148 | } |
| 149 | |
| 150 | ///PongHandle handle pong msg from peer |
| 151 | func PongHandle(data *msgTypes.MsgPayload, p2p p2p.P2P, pid *evtActor.PID, args ...interface{}) { |