채널 1.0.2가 포함 된 Django 1.10.5와 함께 websocket을 사용합니다. 사용자 토큰을 사용하여 연결을 열었습니다. 사용자 ID를 사용하는 모든 사용자의 연결을 끊기를 원합니다. 그러나 명령은 심지어 연결을 수락하기 전에 실행되어 결국 사용자 자신을 닫습니다.사용자 당 활성 연결을 하나만 둡니다.
def get_group(user):
if isinstance(user, User):
uuid = str(user.uuid)
return Group('user-%s' % uuid)
@channel_session
def websocket_connect(message):
user = CachedOAuth2Authentication().authenticate(socket_messeger=message)
if user:
# Do not use more than one device.
get_group(user).send({"close": True})
message.channel_session['user'] = user
get_group(user).add(message.reply_channel)
message.reply_channel.send({"accept": True})
else:
message.reply_channel.send({"close": True})