コード例 #1
0
def main():
    webserver = webnsock.WebserverThread(CARWebServer())
    backend = webnsock.WSBackend(CARProtocol)
    signal(SIGINT,
           lambda s, f: webnsock.signal_handler(webserver, backend, s, f))
    webserver.start()
    backend.talker()
コード例 #2
0
ファイル: tmule.py プロジェクト: vigneshrajap/TMuLE
    def _server(self):
        import webnsock
        import web

        tmux_self = self

        class TMuxWebServer(webnsock.WebServer):
            def __init__(self):

                webnsock.WebServer.__init__(self)

                self._render = web.template.render(path.realpath(
                    path.join(path.dirname(__file__), 'www')),
                                                   base="base",
                                                   globals=globals())

                self_app = self

                class Index(self.page):
                    path = '/'

                    def GET(self):
                        return self_app._render.index(tmux_self.config)

                class Log(self.page):
                    path = '/log'

                    def GET(self):
                        lines = tmux_self.server.cmd('capture-pane', '-p',
                                                     '-C', '-S',
                                                     '-100000').stdout
                        return '\n'.join(lines)

        class TMuxWSProtocol(webnsock.JsonWSProtocol):
            def __init__(self):
                super(TMuxWSProtocol, self).__init__()

            def on_button(self, payload):
                info('button pressed: \n%s' % pformat(payload))
                window_name = payload['id']
                cmd = payload['cmd']
                if cmd == 'launch':
                    if window_name == '':
                        tmux_self.launch_all_windows()
                    else:
                        tmux_self.launch_window(window_name)
                elif cmd == 'stop':
                    if window_name == '':
                        tmux_self.stop_all_windows()
                    else:
                        tmux_self.stop_window(window_name)
                elif cmd == 'terminate':
                    tmux_self.kill_all_windows()
                    sleep(1)
                    tmux_self.init()

                sleep(1)
                self.sendJSON(self.on_status())

            def on_status(self, payload=None):
                info('status-requested: ')

                res = {'windows': {}, 'method': 'update_status'}
                for w in tmux_self.config['windows']:
                    res['windows'][w['name']] = tmux_self.is_running(w['name'])

                return res

                #return {'button_outcome': True}

        self.webserver = webnsock.WebserverThread(TMuxWebServer(), port=9999)
        self.backend = webnsock.WSBackend(TMuxWSProtocol)

        signal.signal(
            signal.SIGINT, lambda s, f: webnsock.signal_handler(
                self.webserver, self.backend, s, f))
        self.webserver.start()
        self.backend.talker(port=9998)
コード例 #3
0
            str(pport) + ".\n"
            "Please check your script arguments. Run with -h option for help.")
        sys.exit(1)

    app.start()
    session = app.session
    memory_service = session.service("ALMemory")
    return session


if __name__ == "__main__":
    session = qi_init()

    ip = os.getenv("PEPPER_IP", default="127.0.0.1")
    webserver = webnsock.WebserverThread(SPQReLUIServer())
    backend = webnsock.WSBackend(SQPReLProtocol)
    signal(SIGINT,
           lambda s, f: webnsock.signal_handler(webserver, backend, s, f))
    webserver.start()

    try:
        # wait for the webserver to be running before displaying it
        tablet_service = session.service("ALTabletService")
    except RuntimeError:
        warn('cannot find ALTabletService')
        tablet_service = None

    if tablet_service:
        sleep(5)
        ip = os.getenv("PEPPER_IP", default="127.0.0.1")
        tablet_service.showWebview('http://%s:8127/' % ip)