lnbase: create main loop

This commit is contained in:
ThomasV 2018-04-11 06:11:07 +02:00 committed by Janus
parent c5fdf0d8ba
commit ca532df193

View File

@ -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()