Ошибка рукопожатия SocketIO4Net

У меня проблема с подключением клиента к серверу socket.io. У меня есть следующий код:

private Client _Client;

private void Initialize(string websocket)
    {
        try
        {
            this._Client = new Client(websocket);
            this._Client.Connect();
            if (!this._Client.IsConnected) throw new Exception("Connection to websocket wasn't successfully: " + this._Client.HandShake.ErrorMessage);
        }
        catch (Exception ex)
        {
            Logging.Write("Fehler bei der SocketIO-Connection: " + ex.Message);
            Logging.WriteLine("incomplete!", ConsoleColor.Red);
            return;
        }

        Logging.WriteLine("completed!", ConsoleColor.Green);
    }

Я использую websocket-uri

http://127.0.0.1:5116/

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

При подключении к этому серверу socket.io я получаю следующую ошибку:

Error getting handsake from Socket.IO host instance: 
Der Remoteserver hat einen Fehler zurückgegeben: (400) Ungültige Anforderung.

Так что это неверный запрос http error (400). Но почему? Что я могу сделать? Я только что попробовал следующий код (решение от пользователя из другого вопроса):

 System.Net.WebRequest.DefaultWebProxy = null;

Но это не сработало для меня.

1 ответ

Решение

Я исправил эту ошибку самостоятельно. Это было очень просто. Рукопожатие socket.io версии 1.0.x отличается от версии 0.9.x. И SocketIO4Net работает только с socket.io версии 0.9.x. Я опустился до версии 0.9.17 и теперь работает отлично:)

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