publish video on same event loop as websocket

This commit is contained in:
Sem van der Hoeven
2023-05-31 21:35:55 +02:00
parent 3d5b593941
commit 05abff6c67
3 changed files with 7 additions and 6 deletions

View File

@@ -85,7 +85,7 @@ var connect_to_api = function () {
console.log("got image");
}
} catch (error) {
console.log("could not parse as json, must be bytes");
// console.log("could not parse as json, must be bytes");
send_image_data_to_clients(message);
}
});

View File

@@ -69,7 +69,7 @@
img.onload = function () {
// Once the image has loaded, set it as the source of the <img> element
imgElement.src = this.src;
console.log("set image data src")
// console.log("set image data src")
};
// Set the base64-encoded image data as the source of the image
@@ -84,7 +84,7 @@
}
events.onmessage = (event) => {
console.log("MESSAGE RECEIVED");
// console.log("MESSAGE RECEIVED");
const eventData = JSON.parse(event.data);
// Check if the event contains image data

View File

@@ -109,11 +109,11 @@ class ApiListener(Node):
except Exception as e:
self.get_logger().error('Something went wrong while reading video: ' + str(e))
def publish_message(self, message):
async def publish_message(self, message):
# self.get_logger().info(f'Publishing message: {message}')
if self.websocket is not None:
try:
asyncio.run(self.websocket.send(message))
await self.websocket.send(message)
except Exception as e:
self.get_logger().error(
'Something went wrong while sending a message to the websocket: ' + str(e))
@@ -131,7 +131,8 @@ class ApiListener(Node):
while True:
if len(self.message_queue) > 0 and self.websocket is not None:
# self.get_logger().info("sending message")
self.publish_message(self.message_queue.pop(0))
loop = asyncio.get_event_loop()
asyncio.ensure_future(self.publish_message(self.message_queue.pop(0)), loop=loop)
def start_api_thread(self):
asyncio.run(self.handle_api())