WIP: chat example

This commit is contained in:
Christophe de Carvalho Pereira Martins
2018-11-18 17:22:56 +01:00
parent 96edf96e76
commit 9123760191
4 changed files with 132 additions and 1 deletions

View File

@ -3,6 +3,13 @@ from abc import ABC, abstractmethod
class INetwork(ABC):
@abstractmethod
def get_peer_id(self):
"""
:return: the peer id
"""
pass
@abstractmethod
def set_stream_handler(self, protocol_id, stream_handler):
"""

View File

@ -4,11 +4,13 @@ from .stream.net_stream import NetStream
from .multiaddr import MultiAddr
from .connection.raw_connection import RawConnection
from peer.id import ID
class Swarm(INetwork):
def __init__(self, my_peer_id, peerstore, upgrader):
self.my_peer_id = my_peer_id
self._my_peer_id = my_peer_id
self.id = ID(my_peer_id)
self.peerstore = peerstore
self.upgrader = upgrader
self.connections = dict()
@ -16,6 +18,9 @@ class Swarm(INetwork):
self.stream_handlers = dict()
self.transport = None
def get_peer_id(self):
return self.id
def set_stream_handler(self, protocol_id, stream_handler):
"""
:param protocol_id: protocol id used on stream
@ -103,6 +108,7 @@ class Swarm(INetwork):
try:
# Success
listener = self.transport.create_listener(conn_handler)
self.listeners[multiaddr_str] = listener
await listener.listen(multiaddr)
return True
except IOError: