Wednesday, January 18, 2017

Re: Django channels, running uwsgi and awsgi



On Wed, Jan 18, 2017 at 12:33 AM, Dev App <zibann.dev@gmail.com> wrote:

I hope there 's a documentation how to do "running-asgi-alongside-wsgi" https://channels.readthedocs.io/en/stable/deploying.html#running-asgi-alongside-wsgi
(I tried google, but none found for how to do it)

I'm just afraid to hand over every request to asgi which I don't know much about.

There's not individual documentation for every situation because people's choice of webserver and their OS versions and environments differ. If you tell me what you're using I can try and provide some hints or links to examples.
 

I have another question.

I'd like to send notification to websocket client when some signal (post-save, etc) occurs.  

For instance, if user-a starts following user-b (post-save signal occurs), (and this happens over wsgi, normal django),
I'd like to send notification to user-b through websocket.

Is the above usage possible with wsgi/asgi dual setup?


Yes, the dual setup still lets you send messages to channels from WSGI workers, just not act on them.
 

I didn't fully understand interface-server/channel-backend/workers concept. 
A single image could help people like me.

I wonder if the following is correct?

nginx --- wsgi --------------  django
                                        /
nginx --- asgi --- redis ---/

asgi is interface-server
redis is channel-backend
django is workers


That's not quite right, but close - the ASGI and WSGI workers live in different places, because the ASGI ones are a separate process using runworker and the WSGI ones run inside your WSGI server, and both can talk to the channel layer (redis in your example).

Any Python code can send to a channel - WSGI workers, management commands, etc. You can just only act on messages on channels inside workers or async code you write yourself.

Andrew

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAFwN1upHBuj-UCt3tTF%3DdVXddrYG_BAqbKs8qytcoQS62GGWoA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment