2016-09-04 4 views
0
Arbeits

Ich habe folgende Verbraucher Code:@channel_session_user_from_http nicht auf Heroku arbeiten, lokal

@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." 

Wie Sie sehen können, ist es eine Nachricht neben Druck nicht viel tun, um zu sehen, ob der Benutzer verbindet, ist anoymous oder nicht. Auf der Client-Seite, Ich verbinde wie:

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); 

ich nur den Server zu bekommen versuchen, um den Benutzer zu erkennen, die das websocket schafft. Dies funktioniert tadellos lokal (dh die Protokollnachricht zeigt, dass der Benutzer korrekt erkannt wurde), wenn ich den Server als daphne mysite.asgi:channel_layer --port 8888 -v2 und den Worker als manage.py runworker -v2 ausführen.

Allerdings, wenn ich genau den gleichen Code auf Heroku ausführen, egal was ich versuche, denkt es immer, dass der Benutzer anonym ist. Irgendwelche Ideen für das, was vor sich geht oder wie man dieses Problem beheben kann?

Antwort

0

Ich habe es herausgefunden ... Ich habe Django 1.9.x auf Heroku benutzt. Nach dem Wechsel zu 1.10 funktioniert es.

Verwandte Themen