Je travaille sur un projet django avec des canaux impliqués dans différentes applications. La première application (recevoir des données d'un capteur) a son propre consommateur et routage, ainsi que le second (met à jour une liste d'utilisateurs connectés).Django Channels - Handshaking & Connect, mais la fonction websocket.connect n'est pas exécutée
Dans la première application tout fonctionne bien. Dans la deuxième application, l'établissement de la liaison est terminé et la connexion établie, mais la fonction liée à websocket.receive
n'est pas exécutée.
from channels.routing import route, route_class
from channels.staticfiles import StaticFilesConsumer
from users.consumer import ws_connect, ws_disconnect
channel_routing = [
route('websocket.connect', ws_connect, path=r'^/users/lobby/'),
...
]
et ws_connect
import json
from channels import Group
from channels.handler import AsgiHandler
from channels.auth import channel_session_user,
channel_session_user_from_http, channel_session
@channel_session_user_from_http
def ws_connect(message):
print('test')
Le print('test')
de ws_connect
est jamais exécuté. De plus, peu importe la fin de l'URL que j'utilise en javascript.
var ws = new WebSocket('ws://127.0.0.1:8000/users/lobby/');
ws.onopen = function() {
console.log('connect');
ws.send('connect');
}
Le ws
du javascript se connecter avec .../users/lobby/
ou .../lobby/
de .../users/
.
Merci pour tous les conseils à ce sujet!