我正在编写多人在线浏览器游戏,现在遇到了一些麻烦
我的消费者:
@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 - 一切正常,但这件事不想这样做。