Anders and Briegel in Python
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 line
1.2KB

  1. from websocket_server import WebsocketServer
  2. from SimpleHTTPServer import SimpleHTTPRequestHandler
  3. from BaseHTTPServer import HTTPServer
  4. import os, sys, threading, time
  5. import webbrowser
  6. clients = []
  7. def new_message(client, server, message):
  8. print "Receieved update from client {}.".format(client["id"])
  9. server.send_message_to_all(message)
  10. def new_client(client, server):
  11. print "Client {} connected.".format(client["id"])
  12. clients.append(client)
  13. def client_left(client, server):
  14. print "Client {} disconnected.".format(client["id"])
  15. clients.remove(client)
  16. if __name__ == '__main__':
  17. # Change to the right working dir
  18. where = os.path.join(sys.path[0], "../static")
  19. os.chdir(where)
  20. # Start the HTTP server
  21. httpserver = HTTPServer(('', 5001), SimpleHTTPRequestHandler)
  22. thread = threading.Thread(target = httpserver.serve_forever)
  23. thread.daemon = True
  24. thread.start()
  25. time.sleep(2)
  26. webbrowser.open("http://localhost:5001/")
  27. # Start the websocket server
  28. server = WebsocketServer(5000)
  29. server.set_fn_new_client(new_client)
  30. server.set_fn_message_received(new_message)
  31. server.set_fn_client_left(client_left)
  32. server.run_forever()
  33. httpserver.shutdown()