diff --git a/libp2p/protocol_muxer/multiselect_communicator.py b/libp2p/protocol_muxer/multiselect_communicator.py index d7e0dd50..0c5b3fa0 100644 --- a/libp2p/protocol_muxer/multiselect_communicator.py +++ b/libp2p/protocol_muxer/multiselect_communicator.py @@ -8,19 +8,24 @@ class MultiselectCommunicator(IMultiselectCommunicator): which is necessary for them to work """ - def __init__(self, stream): - self.stream = stream + def __init__(self, reader_writer): + """ + MultistreamCommunicator expects a reader_writer object that has + an async read and an async write function (this could be a stream, + raw connection, or other object implementing those functions) + """ + self.reader_writer = reader_writer async def write(self, msg_str): """ - Write message to stream + Write message to reader_writer :param msg_str: message to write """ - await self.stream.write(msg_str.encode()) + await self.reader_writer.write(msg_str.encode()) async def read_stream_until_eof(self): """ - Reads message from stream until EOF + Reads message from reader_writer until EOF """ - read_str = (await self.stream.read()).decode() + read_str = (await self.reader_writer.read()).decode() return read_str