Я попытался подключиться к тестовому серверу на локальном хосте из быстрого клиента socket.io, но не смог найти имя хоста.

У меня есть сервер socket.io, работающий на Node.js, который прослушивает localhost:3000. Затем я пытаюсь подключиться к этому серверу с помощью быстрого приложения Mac. Вот как я быстро подключаюсь

      let manager = SocketManager(socketURL: URL(string: "https://localhost:3000/")!, config: [.secure(true), .log(true), .compress])
    let socket: SocketIOClient

    init() {
        socket = manager.defaultSocket

        print(storage)

        addHandlers()
        socket.connect()
    }

Приведенный выше код находится внутри структуры, которая создается как значение свойства в ContentView, поэтому я не думаю, что мой менеджер уничтожается.

Вот соответствующие журналы

      2022-12-20 17:05:48.742 MultiSnake[46501:971261] LOG SocketIOClient{/}: Handling event: statusChange with data: [connecting, 2]
2022-12-20 17:05:48.742 MultiSnake[46501:971261] LOG SocketIOClient{/}: Joining namespace /
2022-12-20 17:05:48.742 MultiSnake[46501:971261] LOG SocketManager: Tried connecting socket when engine isn't open. Connecting
2022-12-20 17:05:48.742 MultiSnake[46501:971261] LOG SocketManager: Adding engine
2022-12-20 17:05:48.743 MultiSnake[46501:971274] LOG SocketEngine: Starting engine. Server: https://localhost:3000/
2022-12-20 17:05:48.743 MultiSnake[46501:971274] LOG SocketEngine: Handshaking
2022-12-20 17:05:48.745 MultiSnake[46501:971274] LOG SocketEnginePolling: Doing polling GET https://localhost:3000/socket.io/?transport=polling&b64=1&EIO=4
2022-12-20 17:05:48.857 MultiSnake[46501:971288] ERROR SocketEnginePolling: A server with the specified hostname could not be found.
2022-12-20 17:05:48.857 MultiSnake[46501:971288] ERROR SocketEngine: A server with the specified hostname could not be found.
2022-12-20 17:05:48.871 MultiSnake[46501:971261] ERROR SocketManager: A server with the specified hostname could not be found.
2022-12-20 17:05:48.871 MultiSnake[46501:971261] LOG SocketIOClient{/}: Handling event: error with data: ["A server with the specified hostname could not be found."]
2022-12-20 17:05:48.872 MultiSnake[46501:971261] LOG SocketManager: Starting reconnect

Я могу подключиться к localhost:3000 из браузера, и я выполнил необходимые действия, связанные с центром сертификации, для работы HTTPS. Я не делал исключения ATS в своем приложении для Mac и предпочел бы этого не делать.

Я попытался изменить строку «https://localhost:3000/» на «localhost:3000/» и добавить .secure(true) в конфигурацию менеджера, но тогда socket.io будет опрашивать https:/socket.io вместо правильный URL. Я не знаю, где я могу указать имя хоста, и я думаю, что следовал приведенным здесь примерам.

0 ответов

Другие вопросы по тегам