Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用txredis为客户机-服务器通信编写异步twisted应用程序_Redis_Twisted_Factory_Reactor - Fatal编程技术网

如何使用txredis为客户机-服务器通信编写异步twisted应用程序

如何使用txredis为客户机-服务器通信编写异步twisted应用程序,redis,twisted,factory,reactor,Redis,Twisted,Factory,Reactor,我想将redis用于我的游戏排行榜数据,我在Stackoverflow问题中发现txredis是一个很好的选择。然而,我找不到任何可能导致我开始编写一些代码的例子。有人能帮我吗?你知道有什么网站有这样的例子吗?谢谢你的帮助 我正在尝试做类似的事情,但是它不起作用。TCP客户端已连接,但当它发送“i:xxx”时,会立即断开连接: from twisted.internet.protocol import Protocol, Factory from twisted.internet import

我想将redis用于我的游戏排行榜数据,我在Stackoverflow问题中发现txredis是一个很好的选择。然而,我找不到任何可能导致我开始编写一些代码的例子。有人能帮我吗?你知道有什么网站有这样的例子吗?谢谢你的帮助

我正在尝试做类似的事情,但是它不起作用。TCP客户端已连接,但当它发送“i:xxx”时,会立即断开连接:

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()`
  • 谷歌搜索“txredis”
  • 单击第一个链接,github上的txredis项目
  • 单击源浏览器中的第一个条目“示例”
  • 单击源浏览器中的第一个条目“demo.py”

  • 谢谢,我知道这个例子。请看一下我刚才添加的代码,你的问题是“有txredis示例吗?”我回答了这个问题。现在您的问题是“txredis使用程序有什么问题?”这是一个非常不同的问题。我认为你应该接受这个答案并提出一个新问题。