Exemplo n.º 1
0
def main():
	SERVER_IP = ''
	WS_PORT = 8000
	#DUE_PORT = 'COM7' #'/dev/ttyACM0'
	#DUE_BAUDS = 9600

	parser = OptionParser(usage="usage: %prog [options]", version="%prog 1.0")
	parser.add_option("--host", default=SERVER_IP, type='string', action="store", dest="host", help="hostname (localhost)")
	parser.add_option("--port", default=WS_PORT, type='int', action="store", dest="port", help="port (8000)")
	parser.add_option("--example", default='echo', type='string', action="store", dest="example", help="echo, chat")
	parser.add_option("--ssl", default=0, type='int', action="store", dest="ssl", help="ssl (1: on, 0: off (default))")
	parser.add_option("--cert", default='./cert.pem', type='string', action="store", dest="cert", help="cert (./cert.pem)")
	parser.add_option("--ver", default=ssl.PROTOCOL_TLSv1, type=int, action="store", dest="ver", help="ssl version")
	
	(options, args) = parser.parse_args()

	cls = WebServer
	
	#if (ArduinoConnected):
	#	serialPortArduinoCom = serial.Serial(DUE_PORT,DUE_BAUDS) 	
	
	if options.ssl == 1:
		server = SimpleSSLWebSocketServer(options.host, options.port, cls, options.cert, options.cert, version=options.ver)
	else:	
		server = SimpleWebSocketServer(options.host, options.port, cls)

	def close_sig_handler(signal, frame):
		server.close()
		sys.exit()
	
	signal.signal(signal.SIGINT, close_sig_handler)
	server.serveforever()
Exemplo n.º 2
0
def start_server():
   parser = OptionParser(usage="usage: %prog [options]", version="%prog 1.0")
   parser.add_option("--host", default='', type='string', action="store", dest="host", help="hostname (localhost)")
   parser.add_option("--port", default=9001, type='int', action="store", dest="port", help="port (9001)")
   parser.add_option("--example", default='echo', type='string', action="store", dest="example", help="echo, chat")
   parser.add_option("--ssl", default=0, type='int', action="store", dest="ssl", help="ssl (1: on, 0: off (default))")
   parser.add_option("--cert", default='./cert.pem', type='string', action="store", dest="cert", help="cert (./cert.pem)")
   parser.add_option("--ver", default=ssl.PROTOCOL_TLSv1, type=int, action="store", dest="ver", help="ssl version")

   (options, args) = parser.parse_args()

   os.system("rm ./unix_socket")
   cls = SimpleEcho
   if options.example == 'chat':
      cls = SimpleChat

   if options.ssl == 1:
      server = SimpleSSLWebSocketServer(options.host, options.port, cls, options.cert, options.cert, version=options.ver)
   else:
      server = SimpleWebSocketServer(options.host, options.port, cls)

   # def close_sig_handler(signal, frame):
   #    server.close()
   #    sys.exit()

   # serverThread = threading.Thread(target=other_thread)
   # serverThread.daemon = True
   # serverThread.start()

   #signal.signal(signal.SIGINT, close_sig_handler)

   server.serveforever()
Exemplo n.º 3
0
def user_session_wsserver(server_status):
    host = "localhost"
    port = 4334
    socket_class = session_websocket
    cert = "./webclient/server.pem"
    key = "./webclient/key.pem"
    server = SimpleSSLWebSocketServer(host, port, socket_class, cert, key)
    #server = SimpleWebSocketServer(host=host, port=port)
    print("wss ready to serve")
    server.serveforever()
Exemplo n.º 4
0
class WebSocketServer(threading.Thread):
    def __init__(self, config, ns):
        threading.Thread.__init__(self)
        self.config = config
        self.net_server = ns
        self.daemon = True

    def run(self):
        t = WsClientThread(self.config, self.net_server)
        t.start()

        host = self.config.get("websocket_server")
        port = self.config.get("websocket_port", 9999)
        certfile = self.config.get("ssl_chain")
        keyfile = self.config.get("ssl_privkey")
        self.server = SimpleSSLWebSocketServer(host, port, ElectrumWebSocket, certfile, keyfile)
        self.server.serveforever()
Exemplo n.º 5
0
class WebSocketServer(threading.Thread):

    def __init__(self, config, ns):
        threading.Thread.__init__(self)
        self.config = config
        self.net_server = ns
        self.daemon = True

    def run(self):
        t = WsClientThread(self.config, self.net_server)
        t.start()

        host = self.config.get('websocket_server')
        port = self.config.get('websocket_port', 9999)
        certfile = self.config.get('ssl_chain')
        keyfile = self.config.get('ssl_privkey')
        self.server = SimpleSSLWebSocketServer(host, port, ElectrumWebSocket, certfile, keyfile)
        self.server.serveforever()
Exemplo n.º 6
0
class WebSocketServer(threading.Thread):
    def __init__(self, config: 'SimpleConfig', network: 'Network'):
        threading.Thread.__init__(self)
        self.config = config
        self.network = network
        asyncio.set_event_loop(network.asyncio_loop)
        self.daemon = True
        self.balance_monitor = BalanceMonitor(self.config, self.network)
        self.start()

    def run(self):
        asyncio.set_event_loop(self.network.asyncio_loop)
        host = self.config.get('websocket_server')
        port = self.config.get('websocket_port', 9999)
        certfile = self.config.get('ssl_chain')
        keyfile = self.config.get('ssl_privkey')
        self.server = SimpleSSLWebSocketServer(host, port, ElectrumWebSocket,
                                               certfile, keyfile)
        self.server.serveforever()
Exemplo n.º 7
0
class WebSocketServer(threading.Thread):

    def __init__(self, config: 'SimpleConfig', network: 'Network'):
        threading.Thread.__init__(self)
        self.config = config
        self.network = network
        asyncio.set_event_loop(network.asyncio_loop)
        self.daemon = True
        self.balance_monitor = BalanceMonitor(self.config, self.network)
        self.start()

    def run(self):
        asyncio.set_event_loop(self.network.asyncio_loop)
        host = self.config.get('websocket_server')
        port = self.config.get('websocket_port', 9999)
        certfile = self.config.get('ssl_chain')
        keyfile = self.config.get('ssl_privkey')
        self.server = SimpleSSLWebSocketServer(host, port, ElectrumWebSocket, certfile, keyfile)
        self.server.serveforever()
Exemplo n.º 8
0
def WebSocket_thread():
    global WebSocketServer
    if USE_SSL:
        WebSocketServer = SimpleSSLWebSocketServer(
            IP,
            PORT,
            WebSocket_server,
            selectInterval=0.001,
            certfile="./cert.pem",
            keyfile="./key.pem",
            version=ssl.PROTOCOL_TLSv1_2)
    else:
        WebSocketServer = SimpleWebSocketServer(IP,
                                                PORT,
                                                WebSocket_server,
                                                selectInterval=0.001)
    try:
        WebSocketServer.serveforever()
    except:
        pass
    print("Websocket server closed.")
Exemplo n.º 9
0
class Core:

    def __init__(self, config):
        self.config = config

        self.users = []

        wshost = self.config['wsserver']['host']
        wsport = self.config['wsserver']['port']
        wscert = self.config['wsserver']['certfile']
        wskey  = self.config['wsserver']['keyfile']
        self.server = SimpleSSLWebSocketServer(wshost,wsport,WebSocketWrapper,wscert,wskey,ssl.PROTOCOL_TLS)
        self.server.cool_core = self

        self.auth = Auth(self.config, self)
        self.media = Media(self.config, self)
        self.validator = MessageValidator(self.config, self)

    def run(self):
        print("Server is now running forever!")
        self.server.serveforever()

    def get_authenticated_users(self):
        return [x for x in self.users if x.authenticated]

    def send_object_to_all(self, obj, authenticated_only=True):
        if authenticated_only:
            for user in self.get_authenticated_users():
                user.send_object(obj)
        else:
            for user in self.users:
                user.send_object(obj)

    def send_system_message_to_all(self, message, allowhtml, duration=-1, authenticated_only=True):
        if authenticated_only:
            for user in self.get_authenticated_users():
                user.send_system_message(message, allowhtml, duration)
        else:
            for user in self.users:
                user.send_system_message(message, allowhtml, duration)
Exemplo n.º 10
0
    parser.add_option("--ver",
                      default=ssl.PROTOCOL_TLSv1,
                      type=int,
                      action="store",
                      dest="ver",
                      help="ssl version")

    (options, args) = parser.parse_args()

    cls = SimpleEcho
    if options.example == 'chat':
        cls = SimpleChat

    if options.ssl == 1:
        server = SimpleSSLWebSocketServer(options.host,
                                          options.port,
                                          cls,
                                          options.cert,
                                          options.cert,
                                          version=options.ver)
    else:
        server = SimpleWebSocketServer(options.host, options.port, cls)

    def close_sig_handler(signal, frame):
        server.close()
        sys.exit()

    signal.signal(signal.SIGINT, close_sig_handler)

    server.serveforever()
      

if __name__ == "__main__":

   parser = OptionParser(usage="usage: %prog [options]", version="%prog 1.0")
   parser.add_option("--host", default='', type='string', action="store", dest="host", help="hostname (localhost)")
   parser.add_option("--port", default=8000, type='int', action="store", dest="port", help="port (8000)")
   parser.add_option("--example", default='echo', type='string', action="store", dest="example", help="echo, chat")
   parser.add_option("--ssl", default=0, type='int', action="store", dest="ssl", help="ssl (1: on, 0: off (default))")
   parser.add_option("--cert", default='./cert.pem', type='string', action="store", dest="cert", help="cert (./cert.pem)")
   parser.add_option("--ver", default=ssl.PROTOCOL_TLSv1, type=int, action="store", dest="ver", help="ssl version")
   
   (options, args) = parser.parse_args()

   cls = SimpleEcho
   if options.example == 'chat':
      cls = SimpleChat	

   if options.ssl == 1:
      server = SimpleSSLWebSocketServer(options.host, options.port, cls, options.cert, options.cert, version=options.ver)
   else:	
      server = SimpleWebSocketServer(options.host, options.port, cls)

   def close_sig_handler(signal, frame):
      server.close()
      sys.exit()

   signal.signal(signal.SIGINT, close_sig_handler)

   server.serveforever()
Exemplo n.º 12
0
def start_server():
    parser = OptionParser(usage="usage: %prog [options]", version="%prog 1.0")
    parser.add_option("--host",
                      default='',
                      type='string',
                      action="store",
                      dest="host",
                      help="hostname (localhost)")
    parser.add_option("--port",
                      default=9001,
                      type='int',
                      action="store",
                      dest="port",
                      help="port (9001)")
    parser.add_option("--example",
                      default='echo',
                      type='string',
                      action="store",
                      dest="example",
                      help="echo, chat")
    parser.add_option("--ssl",
                      default=0,
                      type='int',
                      action="store",
                      dest="ssl",
                      help="ssl (1: on, 0: off (default))")
    parser.add_option("--cert",
                      default='./cert.pem',
                      type='string',
                      action="store",
                      dest="cert",
                      help="cert (./cert.pem)")
    parser.add_option("--ver",
                      default=ssl.PROTOCOL_TLSv1,
                      type=int,
                      action="store",
                      dest="ver",
                      help="ssl version")

    (options, args) = parser.parse_args()

    os.system("rm ./unix_socket")
    cls = SimpleEcho
    if options.example == 'chat':
        cls = SimpleChat

    if options.ssl == 1:
        server = SimpleSSLWebSocketServer(options.host,
                                          options.port,
                                          cls,
                                          options.cert,
                                          options.cert,
                                          version=options.ver)
    else:
        server = SimpleWebSocketServer(options.host, options.port, cls)

    # def close_sig_handler(signal, frame):
    #    server.close()
    #    sys.exit()

    # serverThread = threading.Thread(target=other_thread)
    # serverThread.daemon = True
    # serverThread.start()

    #signal.signal(signal.SIGINT, close_sig_handler)

    server.serveforever()
Exemplo n.º 13
0
    wiringpi.pinMode(LED_GRN, OUTPUT)
    wiringpi.digitalWrite(LED_GRN, OFF)


def setPin(pin_name, pin_state):
    wiringpi.digitalWrite(pin_name, pin_state)


class socketHandler(WebSocket):
    def handleMessage(self):
        # echo message back to client
        msg = self.data
        if msg == "ledon":
            wiringpi.digitalWrite(LED_GRN, ON)
        elif msg == "ledoff":
            wiringpi.digitalWrite(LED_GRN, OFF)
        self.sendMessage(msg)

    def handleConnected(self):
        print(self.address, 'connected')

    def handleClose(self):
        print(self.address, 'closed')


init()
wssServer = SimpleSSLWebSocketServer('', 9800, socketHandler,
                                     '/home/pi-box/cert/certificate.crt',
                                     '/home/pi-box/cert/private.key')
wssServer.serveforever()