当前位置: 首页>>代码示例>>Python>>正文


Python Transport.connect方法代码示例

本文整理汇总了Python中transport.Transport.connect方法的典型用法代码示例。如果您正苦于以下问题:Python Transport.connect方法的具体用法?Python Transport.connect怎么用?Python Transport.connect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在transport.Transport的用法示例。


在下文中一共展示了Transport.connect方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: IRCClient

# 需要导入模块: from transport import Transport [as 别名]
# 或者: from transport.Transport import connect [as 别名]
class IRCClient(object):
    COMMON_SERVICES = [IRCRules]
    def __init__(self, **params):
        self.params = params
        self.transport = Transport()
        self.reader = DelimitedReader("\r\n")
        self.reader.add_callback(self.new_line)
        self._services = []
        for t in type(self).COMMON_SERVICES:
            self.add_service(t())
        for i in self.services():
            self.add_service(i)
        self.lock_many = threading.Lock()
        self.lock_single = threading.Lock()

        self.common_state = {"irc": self}
            # This is not persistent and transmitted as the sender for
            # events like IRC commands

    def update_common_state(self, newstate):
        self.common_state.update(newstate)
    def get_common_state(self):
        return self.common_state
    def services(self):
        """
        Should return an Iterable of services initialized for the current
        instance.

        You should override this when subclassing IRCClient.
        """
        return []
    def loop(self):
        # Automates connect()/update() in a separate thread.
        self.looping = True
        self.state = load_state()
        threading.Thread(target = self._loop).start()
    def _loop(self):
        self.connect()
        while self.looping:
            time.sleep(0.01)
            self.update()
    def stop(self):
        dump_state(self.state)
        self.looping = False
    def connect(self):
        host, post = self.cfgget("host"), self.cfgget("port")
        self.transport.connect((host, post,))
        for i in self._services:
            i.handle(self, messages.JustConnected())
    def update(self):
        try:
            self.reader.update(self.transport)
        except TransportError:
            self.stop()
    def new_line(self, line):
        try:
            parsed = primitive.parse(line)
            print "Received line: %s" % line.strip()
        except primitive.UnknownMessageError:
            print "Received (but could not understand) line: %s" % line
            return
        for i in self._services:
            i.handle(self, parsed)
    def add_service(self, s):
        self._services.append(s)
        s.patch(self)
    def cfgget(self, name, default = NOPARAM):
        """
        Gets the given configuration parameter. The following order of
        precedence is used to return the parameter in order to deal with
        cases where it is unspecified:
            1. self.params[name]
            2. default
            3. default_params[name]
            4. None
        """
        try:
            return self.params[name]
        except KeyError:
            pass
        if default != NOPARAM: return default
        try:
            return default_params[name]
        except KeyError:
            pass
        return None
    def cfgset(self, name, value):
        self.params[name] = value
    def send(self, message):
        """
        Sends a single message.

        This method is thread-safe: however, it's probably best to use sendmany
        if you're attempting to send a series of messages at once, so that
        unrelated send-multiple-messages requests don't intersect
        accidentally.
        """
        with self.lock_single:
            out = message.write()
            print "Sending line: %s" % out
#.........这里部分代码省略.........
开发者ID:Zekka,项目名称:bakten,代码行数:103,代码来源:client.py


注:本文中的transport.Transport.connect方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。