0

我正在编写多人在线浏览器游戏,现在遇到了一些麻烦

我的消费者:

@channel_session
def tankAction(message):
    user = message.channel_session.session_key
    room = message.channel_session['room']
    data = json.loads(rdb.get('battle-'+room))
    recieve_data = json.loads(message.content['text'])

    if recieve_data['action'] == 'tankDestroyed':
        for tank in data['tanks']:
            if tank['id'] != recieve_data['data']:
                tank['score'] += 1

        Group('battle-%s' % room).send({
            'text': json.dumps({
                'action': 'setScore',
                'tanks': data['tanks']
            })
        })

        data = json.dumps(data)
        rdb.set('battle-' + room, data)

        p = Process(target=startGame, args=(room, ))
        p.start()

和功能:

def startGame(room):
    sleep(3)
    Group('battle-%s' % room).send({
            'text': json.dumps({
                'action': 'respawn',
            })
    })
    print ('battle-%s' % room +' respawn')

但是客户端没有来自服务器的任何消息。使用 Django Channels.delay 我不知道如何发布它。我已经结合了一个消费者 message.send 和 group.send - 一切正常,但这件事不想这样做。

4

0 回答 0