YES it worked. I used Daphne with nginx and it worked. Thank you.

On Friday, March 22, 2019 at 5:58:20 PM UTC-7, Adam Zedan wrote:
>
> I am currently using Django channels for websocket communication. I read 
> this 
> <https://django-websocket-redis.readthedocs.io/en/latest/running.html#django-with-websockets-for-redis-behind-nginx-using-uwsgi>
>  article 
> and it states that I should split the project into two uwsgi instances. It 
> states that
>
> "The web server undertakes the task of dispatching normal requests to one 
>> uWSGI instance and WebSocket requests to another one"
>
>
> Now I have two uwsgi instances running. This is how I am running both.
>
> This uwsgi handles the normal django site requests
> uwsgi --virtualenv /home/ec2-user/MyProjVenv --socket /home/ec2-user/
> MyProjVenv/MyProjWeb/site1.socket --chmod-socket=777 --buffer-size=32768 
> --workers=5 --master --module main.wsgi
>
>
> This uwsgi handles the websocket requests
> uwsgi --virtualenv /home/ec2-user/MyProjVenv --http-socket /home/ec2-user/
> MyProjVenv/MyProjWeb/web.socket --gevent 1000 --http-websockets --workers=
> 2 --master --chmod-socket=777  --module main.wsgi_websocket
>
> Now the websocket uwsgi launches  main.wsgi_websocket
>
> The code for main.wsgi_websocket one is this
> import os
> import gevent.socket
> import redis.connection
> redis.connection.socket = gevent.socket
> os.environ.update(DJANGO_SETTINGS_MODULE='main.settings')
> from ws4redis.uwsgi_runserver import uWSGIWebsocketServer
> application = uWSGIWebsocketServer()
>
> Now after spinning up the two uwsgi instances I am able to access the 
> website.The websocket uwsgi instance is also receiving data however I am 
> not sure if its passing that data to the website uwsgi instance. I am using 
> Django Channels here and this is the configuration I have specified in my 
> settings for Django Channels
>
> CHANNEL_LAYERS = {
>     "default": {
>         "BACKEND": "asgi_redis.RedisChannelLayer",
>         "CONFIG": {
>             "hosts": [(redis_host, 6379)],
>         },
>        "ROUTING": "main.routing.channel_routing", 
>     },
> }
>
> The channel routing is this
> channel_routing = [
>     include("chat.routing.websocket_routing", path=r"^/chat/stream"),
>     include("chat.routing.custom_routing"),
> ]
>
> and this is the websocket_routing which i have mentioned above
>
>
>
> websocket_routing = [
>     route("websocket.connect", ws_connect),
>
>
>     # Called when WebSockets get sent a data frame
>     route("websocket.receive", ws_receive),
>
>
>     # Called when WebSockets disconnect
>     route("websocket.disconnect", ws_disconnect),
> ]
>
> Now the problem is that my ws_receive is never called. If I test on my 
> local dev machine using  "*ipaddress:8000/chat/stream*" this works 
> perfectly fine however I have no clue why my receive is not being called 
> when I use *ipadress:80/ws/ *. I am certain that my other uwsgi instance 
> is getting that data but I dont know how to find out if its passing it to 
> the other uwsgi instance of the djnago side and if it is then why is my 
> receive not being called ?. Any suggestions on this would definitely help
>
>
>
>
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
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/e4096133-d010-4b96-a403-985fb1b3a104%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to