-
Notifications
You must be signed in to change notification settings - Fork 138
0.21.3 Cannot handle incoming text #391
Closed as not planned
Description
Here is example handler. My code shows error like "handle_text_stream is not awaited."
async def handle_text_stream(reader, participant_identity):
info = reader.info
print(
f'Text stream received from {participant_identity}\n'
f' Topic: {info.topic}\n'
f' Timestamp: {info.timestamp}\n'
f' ID: {info.id}\n'
f' Size: {info.size}' # Optional, only available if the stream was sent with `send_text`
)
# Option 1: Process the stream incrementally using an async for loop.
async for chunk in reader:
print(f"Next chunk: {chunk}")
# Option 2: Get the entire text after the stream completes.
text = await reader.read_all()
print(f"Received text: {text}")
room.register_text_stream_handler(
"my-topic",
handle_text_stream
)
As the coding in Room.py, the handler is called without async context.
def _handle_stream_header( self, header: proto_room.DataStream.Header, participant_identity: str ): stream_type = header.WhichOneof("content_header") if stream_type == "text_header": text_stream_handler = self._text_stream_handlers.get(header.topic) if text_stream_handler is None: logging.info( "ignoring text stream with topic '%s', no callback attached", header.topic, ) return text_reader = TextStreamReader(header) self._text_stream_readers[header.stream_id] = text_reader text_stream_handler(text_reader, participant_identity) elif stream_type == "byte_header": byte_stream_handler = self._byte_stream_handlers.get(header.topic) if byte_stream_handler is None: logging.info( "ignoring byte stream with topic '%s', no callback attached", header.topic, ) return byte_reader = ByteStreamReader(header) self._byte_stream_readers[header.stream_id] = byte_reader byte_stream_handler(byte_reader, participant_identity) else: logging.warning("received unknown header type, %s", stream_type)
Activity
Metadata
Metadata
Assignees
Labels
No labels