def ws_message(transport, message): if transport.authenticated: transport.write(message) else: data = {} try: data = json.loads(message) except ValueError: pass if 'cmd' in data and data['cmd'] == 'AUTHENTICATE': if 'key' in data and data['key'] == 'auth-key': transport.authenticated = True transport.write(json.dumps({'cmd': 'AUTHENTICATED'})) broadcast(json.dumps({'connections': len(authenticated())}), authenticated()) else: transport.write(json.dumps({'cmd': 'AUTHENTICATION_FAILED', 'reason': 'Wrong key'})) else: transport.write(json.dumps({'cmd': 'AUTHENTICATION_REQUIRED'}))
def ws_close(transport, reason): broadcast(json.dumps({'connections': len(authenticated())}), authenticated())
def ws_message(transport, message): broadcast(message, chat.transports())