У меня есть следующий код: потребительскогоне @channel_session_user_from_http работает на Heroku, работающим на местном уровне
@channel_session_user_from_http
def ws_connect(message):
if not message.user.is_anonymous:
print "WS: Connect: Adding channel %s to group for user %i" % (message.reply_channel, message.user.id)
group_for_user(message.user).add(message.reply_channel)
else:
print "WS: Connect: Warning: Ignoring anonymous user."
Как вы можете видеть, это не делает много, кроме печати сообщений, чтобы увидеть, является ли anoymous пользователя подключения или не. На стороне клиента, я подключения, как:
var ws_scheme = window.location.protocol == "https:" ? "wss" : "ws";
var chat_socket = new ReconnectingWebSocket(ws_scheme + '://' + window.location.host + "/?session_key=" + document.getElementById('internal-data').dataset.sessionKey);
Я просто пытаюсь получить сервер, чтобы идентифицировать пользователя, которая создает WebSocket. Это работает отлично нормально локально (то есть на напечатанном сообщении журнала отображается, что пользователь был распознан правильно), когда я запускаю сервер как daphne mysite.asgi:channel_layer --port 8888 -v2
, а рабочий - manage.py runworker -v2
.
Однако, когда я запускаю точно такой же код на Heroku, независимо от того, что я пытаюсь, он всегда считает, что пользователь анонимен. Любые идеи для того, что происходит или как отладить эту проблему?