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