小编moo*_*hel的帖子

Django频道

我对Django频道,WebSockets和聊天应用程序一无所知.与谷歌一起服务让我去聊天室,在那里人们可以连接并开始聊天.但我不知道一个用户如何发送另一个用户即时消息.

例如:

1)我将John添加到朋友,并希望开始聊天.2)在服务器端,我可以生成对象Room,我和John作为成员.3)当我通过WebSocket向这个房间发送消息时,我知道这个消息是谁,但我不知道如何获得John的频道

@channel_session_user_from_http
def ws_connect(message):
    rooms_with_user = Room.objects.filter(members=message.user)
    for r in rooms_with_user:
        Group('%s' % r.name).add(message.reply_channel)

@channel_session_user
def ws_receive(message):
    prefix, label = message['path'].strip('/').split('/')

    try:
        room = Room.objects.get(name=label)
    except Exception, e:
        room = Room.objects.create(name=get_random_string(30))
        for u in message.chmembers:
            room.members.add(u)
            # here can be somethis like this
            # try
            reply_channel = Channels.objects.get(online=True, user=u)
            Group('%s' % r.name).add(reply_channel)
    Group('%s' % room.name).send({
        "text": "%s : %s" % (message.user.username, message['text']),
    })

@channel_session_user
def ws_disconnect(message):
    prefix, label = message['path'].strip('/').split('/')
    Group(label).discard(message.reply_channel)
Run Code Online (Sandbox Code Playgroud)

python django chat django-channels

5
推荐指数
1
解决办法
1259
查看次数

标签 统计

chat ×1

django ×1

django-channels ×1

python ×1