0

I am working on my first django channels app and I want to deploy my django channel app in Google Cloud Platform,its working fine in local server,but when I deployed it on Google Cloud Platform,it gives me errors:

WebSocket connection to 'wss://sockets-263709.appspot.com/ws/chat/user2/' failed: Error during WebSocket handshake: Unexpected response code: 400

I have researched but can't figure out how to setup it,here's my below code:

Entry point:

from Frames.wsgi import application
app = application

wsgi.py:

import os

from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Frames.settings')
application = get_wsgi_application()

Asgi.py

import os
import django
from channels.routing import get_default_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Frames.settings')
django.setup()
application = get_default_application()

settings.py:

WSGI_APPLICATION = 'Frames.wsgi.application'
ASGI_APPLICATION = "Frames.routing.application"

CHANNEL_LAYERS={
    "default":{
      "BACKEND": "channels_redis.core.RedisChannelLayer",
      "CONFIG": {
                "hosts": [("sockets-263709.appspot.com", 6379)],
            },
    },
}

client side:

var wsStart='ws://';
    // check if it is secured then assign wss://
    if (loc.protocol==='https:'){
        wsStart="wss://"
    }

    var chatSocket = new WebSocket(wsStart +window.location.host +
        '/ws/chat/' + roomName + '/');

Requirements.txt

absl-py==0.8.1
aioredis==1.3.1
asgiref==3.2.3
astor==0.8.1
async-timeout==3.0.1
attrs==19.3.0
autobahn==19.11.1
Automat==0.8.0
certifi==2019.11.28
cffi==1.13.2
channels==2.3.1
channels-redis==2.4.1
chardet==3.0.4
constantly==15.1.0
daphne==2.4.0
Django==3.0.1
djangochannelsrestframework==0.0.3
djangorestframework==3.11.0
gast==0.3.2
google-pasta==0.1.8
grpcio==1.25.0
h5py==2.10.0
hiredis==1.0.1
hyperlink==19.0.0
idna==2.8
incremental==17.5.0
Markdown==3.1.1
msgpack==0.6.2
mysqlclient==1.4.6
protobuf==3.11.1
pyasn1==0.4.8
pyasn1-modules==0.2.7
pycparser==2.19
PyHamcrest==1.9.0
PyMySQL==0.9.3
pyOpenSSL==19.1.0
pytz==2019.3
PyYAML==5.2
requests==2.22.0
scipy==1.3.3
service-identity==18.1.0
six==1.13.0
sqlparse==0.3.0
termcolor==1.1.0
tqdm==4.40.2
Twisted==19.10.0
txaio==18.8.1
urllib3==1.25.7

I have a start point from WSGI.py,I have researched and came know about daphne but don't know,can anybody point me how to deploy it properly.The connection is successfully open in locally. Is the host is correctly mention in config(CHANNEL_LAYERS) in settings.py

Nibrass H
  • 2,403
  • 1
  • 8
  • 14
Nabeel Ayub
  • 1,060
  • 3
  • 15
  • 35
  • Could you please tell me where are you uploading this Django App? Are you using Google App Engine, or you are serving it using a GCE (Google Compute Instance) instance? – Christopher Rodriguez Conde Jan 02 '20 at 12:52
  • I am uploading in google app engine – Nabeel Ayub Jan 03 '20 at 07:26
  • You can follow this [Google Cloud Platform Official Documentation](https://cloud.google.com/appengine/docs/flexible/python/using-websockets-and-session-affinity#websockets) for creating persistent connections with websockets. Let me know if it helped you. – Nibrass H Jan 06 '20 at 09:11

0 Answers0