Я хочу использовать Redis для таблицы лидеров данных моей игры, и я видел в одном из вопросов StackOverflow, что txredis является хорошим вариантом. Однако я не могу найти ни одного примера, который мог бы привести меня к написанию некоторых кодов. Кто-нибудь может мне помочь? Знаете ли вы, что на каком-либо веб-сайте есть примеры? Буду признателен за вашу помощь.Как написать асинхронное витое приложение для клиентского сервера связи с использованием txredis
Я пытаюсь сделать что-то подобное, однако он не работает. Клиент TCP соединяет, но когда он посылает «я: ххх» он отключен немедленно:
from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor
from twisted.internet import defer
from txredis.protocol import Redis
from twisted.internet import protocol
# Hostname and Port number of a redis server
HOST = 'localhost'
PORT = 6379
@defer.inlineCallbacks
def main():
clientCreator = protocol.ClientCreator(reactor, Redis)
redis = yield clientCreator.connectTCP(HOST, PORT)
res = yield redis.ping()
print res
info = yield redis.info()
print info
res = yield redis.set('test', 42)
print res
test = yield redis.get('test')
print test
class LeaderBoard(Protocol):
def connectionMade(self):
self.factory.clients.append(self)
clientCreator = protocol.ClientCreator(reactor, Redis)
redis = yield clientCreator.connectTCP(HOST, PORT)
def connectionLost(self, reason):
print "client removed",self
self.factory.clients.remove(self)
def dataReceived(self, data):
defer.inlineCallbacks
a = data.split(':')
if len(a) > 1:
command = a[0]
content = a[1]
res = yield self.redis.set('test', 42)
print res
msg = ""
score = ""
if command == "i":
self.name = content
msg = self.name + " has joined"
print msg
elif command== "msg":
msg = self.name + ": " + content
self.message(msg)
def message(self, message):
self.transport.write(message + '\n')
if __name__ == "__main__":
factory = Factory()
factory.protocol = LeaderBoard
factory.clients = []
reactor.listenTCP(80, factory)
print "Iphone Chat server started"
reactor.run()`
Спасибо, я знаю, что этот пример. Не могли бы вы посмотреть на код, который я только что добавил. – Bora
Ваш вопрос: «Есть ли примеры txredis?» на что я ответил. Теперь ваш вопрос: «Что не так с этой программой, использующей txredis?», Это совсем другой вопрос. Я думаю, вы должны принять этот ответ и задать новый вопрос. –
ok сделают это, спасибо за ваш ответ. – Bora