PythonでWebSocketサーバーを動かしているのですが、クライアントとの接続の確立がうまくいきません。

クライアント(Google Chrome)からWebSocketで受け取ったデータをノンブロッキングなUDPを使って他のアドレスへ転送したいです。

ただ、WebSocketのサーバーとクライアント間の接続がうまくいっていないようで、Chromeを見ると

WebSocket connection to wss://localhost:4246/ failed: Error in connection establishment: net::ERR_SOCKET_NOT_CONNECTED

というエラーが発生しています。

なぜ、接続がうまくいかないのでしょうか?

サーバーは下記のようになっていて、データを受信するとhandleMessageが呼ばれてデータの内容がprintで表示された後、udpで送るようになっています。

Chromeは-allow-insecure-localhostが有効になっています。

このコードはsimple-websocket-server
を使っています。

from SimpleWebSocketServer import WebSocket, SimpleSSLWebSocketServer, SimpleWebSocketServer
import multiprocessing

import ssl
import signal
import sys
import socket
import os.path



class DataWebSocket(WebSocket):
    def __init__(self, server, sock, address, tcp_sock):
        super().__init__(server, sock, address)
        self.udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        self.udp_sock.setblocking(False)
        self.udp_sock.bind(("127.0.0.1", 6666))
    def handleMessage(self):
        while True:
                self.udp_sock.sendto(("127.0.0.1", 7774), self.data)
        print(self.data)

    def handleClose(self):
        print("connection: closed " + self.address)
        self.conn_sock.close()
        self.sendMessage("server exit")
        sys.exit()

    def handleConnected(self):
        pass

def f():
    def datawebsocketclasscaller(server, sock, address):
        return DataWebSocket(server, sock, address)
    return datasocketclasscaller

def start_data_receiver():
    SSL = True
    p = f()
    if SSL:
        server = SimpleSSLWebSocketServer("127.0.0.1", 4246, p, "../certs/server.crt", "../certs/server.key")
    else:
        server = SimpleWebSocketServer("127.0.0.1", 4246, p)
    server.serveforever()

クライアント(Google Chrome):

const ws = new WebSocket("wss://localhost:4246");
const btn = document.querySelectorAll("button#btn1")[0];
btn.onclick = () => ws.send("Hello from button1");