コード例 #1
0
class LogSockJSProtocol(Protocol):
    def __init__(self, factory):
        self.factory = factory
        self.loop = LoopingCall(self.check_log)
        self.log_provider = None

    def connectionMade(self):
        self.factory.transports.add(self.transport)
        out.info('sockjs /logs connected')

        self.log_provider = LogProvider(self.factory.chute)
        self.log_provider.attach()
        self.loop.start(1.0)

    def check_log(self):
        logs = self.log_provider.get_logs()
        for log in logs:
            self.transport.write(json.dumps(log))

    def connectionLost(self, reason):
        if self.transport in self.factory.transports:
            self.factory.transports.remove(self.transport)
        out.info('sockjs /logs disconnected')

        self.loop.stop()
        self.log_provider.detach()
        self.log_provider = None
コード例 #2
0
class LogSockJSProtocol(WebSocketServerProtocol):
    def __init__(self, factory):
        WebSocketServerProtocol.__init__(self)
        self.factory = factory
        self.loop = LoopingCall(self.check_log)
        self.log_provider = None

    def onOpen(self):
        out.info('sockjs /logs connected')

        self.log_provider = LogProvider(self.factory.chute)
        self.log_provider.attach()
        self.loop.start(1.0)

    def check_log(self):
        logs = self.log_provider.get_logs()
        for log in logs:
            self.sendMessage(json.dumps(log))

    def onClose(self, wasClean, code, reason):
        out.info('sockjs /logs disconnected')

        self.loop.stop()
        self.log_provider.detach()
        self.log_provider = None
コード例 #3
0
class ChuteLogWsProtocol(WebSocketServerProtocol):
    def __init__(self, factory):
        WebSocketServerProtocol.__init__(self)
        self.factory = factory
        self.loop = LoopingCall(self.check_log)
        self.log_provider = None

    def onOpen(self):
        out.info('ws /chute_logs connected')
        self.log_provider = LogProvider(self.factory.chute_name)
        self.log_provider.attach()
        self.loop.start(0.5)

    def check_log(self):
        logs = self.log_provider.get_logs()
        for log in logs:
            self.sendMessage(log)

    def onClose(self, wasClean, code, reason):
        out.info('ws /chute_logs disconnected: {}'.format(reason))
        self.loop.stop()
        self.log_provider.detach()
        self.log_provider = None