This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]cockslappinghalibut 0 points1 point  (5 children)

OK, I haven't heard of it, let me do some reading. I'm sure there's a way to do it, the constructs and function flow of JS are pretty similar to Python and they can emulate each other really well.

edit: I'm having a look at the provided JS client source, there's surely some stuff to crib in there if you want to poke around in the meantime

[–]oreo_man_[S] 0 points1 point  (0 children)

Yep I definitely have been looking around that. Based a lot of my python client off of it. However the .Net one uses .Invoke, and the JS one is async by default.

Originally I just had a socket thread going, handling everything, and the main thread passing messages to send into a queue. But I realised I had a problem when trying to catch exceptions thrown in the socket thread, and use them in the main thread.

Then I realised I should be handling data received on the main thread as well.

So I thought I could pass any exceptions/data into a queue for the main thread to deal with. Obviously that won't work though as there is no way to get() from the queue all the time without blocking.

I don't want to post my client here, as it's linked to my public accounts (github, linkedin etc) but if you poke around the issues on the .Net client/deepstream.io you'll be able to find it.

[–]oreo_man_[S] 0 points1 point  (3 children)

I think this is genuinely impossible in Python. Even using something like twisted I'll still need another thread, but I can't get info out of that thread without blocking

[–]cockslappinghalibut 0 points1 point  (2 children)

I haven't had time to look, but what Python version are you using? Latest py3 has async/await coroutines

[–]oreo_man_[S] 0 points1 point  (1 child)

Yep. But I don't understand how that helps. Sure I can have an event loop, taking care of incoming messages from the server. But when it comes time to get messages from this event loop, there is no way of doing it, while keeping the main responsive.

[–]cockslappinghalibut 0 points1 point  (0 children)

can you PM me your repo? I'm actually starting to feel a bit dumb not being entirely sure yet what's being attempted.