Ошибка установления соединения с сервером WebSocket - PullRequest
0 голосов
/ 23 января 2019

WebSocket Server не устанавливает соединение.

Ниже приведен код Websocket Handler.
Это зависит от simple-websocket-server Ожидается, что этот обработчик будет передавать полученные данные с неблокирующим сокетом UDP (носок udp).
Но теперь этот сервер не может установить соединение.

Я попытался подключиться к этому серверу из веб-браузера (Google Chrome с включенным параметром --allow-insecure-localhost), он вызывает сбой соединения.

Как это исправить?

from SimpleWebSocketServer import WebSocket, SimpleSSLWebSocketServer, SimpleWebSocketServer
import multiprocessing
from multiprocessing.managers import BaseManager
import ssl
import signal
import sys
import socket
import os.path



class DataWebSocket(WebSocket):
    def __new__(cls, name, bases, cls_dict):
        cls.udp_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        cls.udp_sock.setblocking(False) #non-blocking udp socket
        cls.udp_sock.bind(("127.0.0.1", 6666))
    def __init__(self, server, sock, address):
        super().__init__(server, sock, address)
    def handleMessage(self):
        self.udp_sock.sendto(("127.0.0.1", 7774), self.data) # transmit received data
        print(self.data)

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

    def handleConnected(self):
        print("Connected", self.address)


def start_data_receiver():
    SSL = True
    if SSL:
        server = SimpleSSLWebSocketServer("localhost", 4246, DataWebSocket, "../certs/server.crt", "../certs/server.key")
    else:
        server = SimpleWebSocketServer("localhost", 4246, DataWebSocket)
    print("start server: 127.0.0.1:4246")
    server.serveforever()

if __name__ == "__main__":
    start_data_receiver()
...