Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue112 #152

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

Issue112 #152

wants to merge 2 commits into from

Conversation

jeromer
Copy link

@jeromer jeromer commented Jul 7, 2013

This is an incomplete attempt to solve #112.

As discussed on the mailing list here is a pull request of the code so we can discuss the patch further.

Have a nice day :)

Jérôme Renard added 2 commits July 4, 2013 15:47
Pickling sockets does not work for the moment which is a real blocker.
@abourget
Copy link
Owner

abourget commented Jul 7, 2013

Have you taken a look at my other questions ?

@jeromer
Copy link
Author

jeromer commented Jul 8, 2013

How will the session attribute be handled ? Will that be shared through Redis ?

As long as the session attribute can be pickled I think it could be shared through Redis.

Also, will that be easily useable without Gunicorn ?

To be honnest, I do not know. I only use Gunicorn.

Maybe a little doc on how to configure it if you run it through django/paste or something ?

Let's try to get a strategy and a working patch first. Documentation will come later I believe :)

As for the VirtSocket.server attribute.. I didn't look it through thoroughly, but couldn't we just make it a @Property that would return the globally-set-somewhere SocketIOServer ?

I think a globally set SocketIoServer would help a lot I think.

How will the "request", or "jobs" attributes be serialized ? This would seem to pose a more serious issue though.. for real applications. How will it share state about running processes ?

If we can not serialize them, we are blocked. No matter which solution we try (Redis, ØMQ://ipc, Multiprocessing.manager, etc) if the data we need to share can not be serialized there is no where we can go.

It seems I clearly overlooked some variables into the equation with my patch.

In order to get a correct strategy I think we should answer the following questions:

  • What data need to be shared among different processes ?
  • What data can be serialized ?
  • If we can not serialize some data is there an acceptable way to make them available anyway ?

@arg0s
Copy link

arg0s commented Jul 16, 2013

Hey @jeromer, @abourget did you guys get to collaborate on this thread further?

@jeromer
Copy link
Author

jeromer commented Jul 16, 2013

Yes, you can follow the discussion here : https://groups.google.com/forum/#!topic/gevent-socketio/n9mS96cnNUw

I think we are close to a solution, but I am super busy at the moment and I will not have time to work on this issue in a close future :(

@lukas-hetzenecker
Copy link

Has there been any further work on this issue? Is there anything that I can help with?

@jeromer
Copy link
Author

jeromer commented Aug 7, 2013

Hi Lukas,

I did not have time to work on this issue, sorry. However I think you can help by working on globally defined SocketIoServer variables as discussed in the thread given 2 comments above.

:)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants