Esempio n. 1
0
class Server():
    def __init__(self, port):
        self.port = port

        self.app = Flask(__name__,
                static_folder='assets/static',
                static_url_path='/static',
                template_folder='assets/templates')
        self.app.register_blueprint(routes)

        self.socketio = SocketIO(self.app)

        # Log to stdout.
        sh = logging.StreamHandler(sys.stdout)
        self.app.logger.addHandler(sh)

        @self.socketio.on('connect')
        def on_connect():
            """
            This seems necessary to get
            the SocketIO emitting working properly...
            """
            pass


    def start(self):
        self.app.logger.debug('starting the nomadic server...')
        self.socketio.run(self.app, port=self.port)


    def refresh_clients(self):
        self.socketio.emit('refresh')
Esempio n. 2
0
class Server():
    def __init__(self, port):
        self.port = port

        self.app = Flask(__name__,
                         static_folder='assets/static',
                         static_url_path='/static',
                         template_folder='assets/templates')
        self.app.register_blueprint(routes)

        self.socketio = SocketIO(self.app)

        # Log to stdout.
        sh = logging.StreamHandler(sys.stdout)
        self.app.logger.addHandler(sh)

        @self.socketio.on('connect')
        def on_connect():
            """
            This seems necessary to get
            the SocketIO emitting working properly...
            """
            pass

    def start(self):
        self.app.logger.debug('starting the nomadic server...')
        self.socketio.run(self.app, port=self.port)

    def refresh_clients(self):
        self.socketio.emit('refresh')
Esempio n. 3
0
        values = [s.strip().split(".") for s in args.values.split(",")]

    while 1:
        polld = poller.poll(timeout=1000)
        for sock, mode in polld:
            if mode != zmq.POLLIN:
                continue
            msg = sock.recv()
            evt = log.Event.from_bytes(msg)
            if sock in republish_socks:
                republish_socks[sock].send(msg)
            if args.map and evt.which() == 'liveLocation':
                print('send loc')
                socketio.emit(
                    'location', {
                        'lat': evt.liveLocation.lat,
                        'lon': evt.liveLocation.lon,
                        'alt': evt.liveLocation.alt,
                    })
            if not args.no_print:
                if args.pipe:
                    sys.stdout.write(msg)
                    sys.stdout.flush()
                elif args.raw:
                    hexdump(msg)
                elif args.json:
                    print(json.loads(msg))
                elif args.dump_json:
                    print(json.dumps(evt.to_dict()))
                elif values:
                    print("logMonotime = {}".format(evt.logMonoTime))
                    for value in values:
Esempio n. 4
0
class RandomThread(Thread):
    def __init__(self):
	self.delay = 1
	super(RandomThread, self).__init__()

    def randomNumberGenerator(self):
        """
        Generate a random number every 1 second and emit to a socketio instance (broadcast)
        Ideally to be run in a separate thread?
        """
        #infinite loop of magical random numbers
        print "Making random numbers"
        while not thread_stop_event.isSet():
            number = round(random()*10, 3)
            print number
            socketio.emit('newnumber', {'number': number}, namespace='/test')
            print "app.py: emitted newnumber"
	    sleep(self.delay)

    def run(self):
        self.randomNumberGenerator()


@app.route('/')
def index():
    #only by sending this page first will the client be connected to the socketio instance
    return render_template('index.html')

@socketio.on('connect', namespace='/test')
def test_connect():
    # need visibility of the global thread object
Esempio n. 5
0
# plot point of interrest
@socketio.on(MARKER, namespace='/stream')
def flag(message):
  logger.info("client requesting flag plot: " + str(message))
  try:
    results = [] 
    results.append(CHART_MARKER)
    results.append(message['data'])
    values.append(results)
    logger.debug("appended to values: " + str(results))
    datafile.write(str(results) + '\n')
    logger.debug("written to file")
  except Exception, e:
    logger.warn("unable to append the data file: " + str(e));
  logger.info("broadcasting: " + message['data'])
  socketio.emit(MARKER, {'data': message['data']}, namespace='/stream')


# socket.io refresh request
@socketio.on('refresh', namespace='/stream')
def refresh(message):
  logger.info('client requesting refresh: ' + str(message))
  
  realtime = False # shutdown the realtime events to prevent timeline contamination
  i = 0; # counter for how many events were emitting for logging later
  e = message['data'] # get thre desired count of records from the message

  # if the desired number of recoreds exceeds whats in the value history, adjust accordingly
  if e>len(values):
    e=len(values)
    logger.debug("setting max history available to %s" % e)