lnbase: create main loop
This commit is contained in:
parent
14837ba01d
commit
d5bd965aa5
@ -9,6 +9,7 @@ from collections import OrderedDict
|
||||
import asyncio
|
||||
import sys
|
||||
import os
|
||||
import time
|
||||
import binascii
|
||||
import hashlib
|
||||
import hmac
|
||||
@ -235,6 +236,10 @@ class Peer(PrintError):
|
||||
self.privkey = privkey
|
||||
self.pubkey = pubkey
|
||||
self.read_buffer = b''
|
||||
self.ping_time = 0
|
||||
|
||||
def ping_required(self):
|
||||
return time.time() - self.ping_time > 120
|
||||
|
||||
def send_message(self, msg):
|
||||
print("Sending %d bytes: "%len(msg), binascii.hexlify(msg))
|
||||
@ -302,12 +307,13 @@ class Peer(PrintError):
|
||||
# send init
|
||||
init_msg = gen_msg("init", gflen=0, lflen=0)
|
||||
self.send_message(init_msg)
|
||||
# send ping
|
||||
ping_msg = gen_msg("ping", num_pong_bytes=4, byteslen=4)
|
||||
self.send_message(ping_msg)
|
||||
# read pong
|
||||
msg = await self.read_message()
|
||||
process_message(msg)
|
||||
while True:
|
||||
if self.ping_required():
|
||||
self.send_message(gen_msg("ping", num_pong_bytes=4, byteslen=4))
|
||||
self.ping_time = time.time()
|
||||
|
||||
msg = await self.read_message()
|
||||
process_message(msg)
|
||||
# close socket
|
||||
self.writer.close()
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user