Я наконец решил проблему.Но, как он указывает, это не имеет ничего общего с кодом выше;это работает как задумано.Причиной, по которой это всегда не удавалось соединиться, был неправильный ключ, который был передан функции, что привело к неверному результату.(Я сохраню пост, чтобы другие могли использовать код для создания хэшей).
В своем тесте я попытался передать данные в функцию, используя
sData = sReader.ReadLine();
if (sData.StartsWith("Sec-WebSocket-Key: "))
{
string key = sData.Substring(19, sData.Length - 19).Trim(' ');
String hashKey = ComputeSocketAcceptString(key);
//Response here
}
Однако подстрока, которая была извлеченакод из запроса был неверным.Это заставило функцию вычислять неправильный хеш.
Для всех, кто ищет некоторые правильные значения запроса / ответа для проверки, вот некоторые из них:
Sec-WebSocket-Key: fAB2VSri/zcQdblwjKH9Ow==
Sec-WebSocket-Accept: sGQcFOVDy7ctcd9TTk4Jr9vtXaQ=
Sec-WebSocket-Key: +YFXjHbEdHlvigafwh/Ixw==
Sec-WebSocket-Accept: xdj5tRanzBYNvV31W6QIY5+mNjI=
Sec-WebSocket-Key: bNS0upBX5U6lICKLvFokUg==
Sec-WebSocket-Accept: G66BkTwtxFeWMHaV7Dm/Cd4g+Rg=