Как создать веб-сокет для URL с помощью «Авторизации», «Носителя», токена в c # - PullRequest
0 голосов
/ 13 июня 2019

Мне нужно создать веб-сокет для определенного URL (не может открыть) в C #.Есть ли что-то похожее на API WebSocket в Java или libwebsockets в C для C #?

Я уже пытался использовать WebSocketSharp и ChilKat, следуя некоторым из ответов SO.Также попытался использовать пространство имен Microsofts WebSocket.Но всегда получал ошибку «Not Authorized» 401. Я также пытался выполнить Http get и пытался добавить заголовки для обновления сокета до Websocket, следуя инструкции по созданию серверов WebSocket в документах MDN, но получал только перенаправленную веб-страницу.взаменЭто код, который я использовал для запроса на обновление HTTP.Я новичок в c #.

ServicePointManager.Expect100Continue = true;
                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
                                                    | SecurityProtocolType.Tls11
                                                    | SecurityProtocolType.Tls12
                                                    | SecurityProtocolType.Ssl3;
            ServicePointManager.ServerCertificateValidationCallback += (se, cert, chain, sslerror) =>
            {
                return true;
            };
            var http = (HttpWebRequest)WebRequest.Create(new Uri(baseAddress));
            http.AllowAutoRedirect = false;
            http.UseDefaultCredentials = true;
            http.PreAuthenticate = true;
            http.Credentials = CredentialCache.DefaultCredentials;
            http.Proxy.Credentials = CredentialCache.DefaultCredentials;
            http.Accept = "application/json";
            http.ContentType = "application/json";
            http.Method = "GET";
            http.Connection = "Open";
            http.Headers.Add("Authorization", "Bearer " + Token);
            //http.Headers.Add("Connection", "Upgrade");
            http.Headers.Add("Upgrade", "websocket");
            http.KeepAlive = true;

Что я хочу достичь, это что-то вроде

Websocket socket = new Websocket();
socket.addHeader(Authorization, Bearer, Token);
socket.connect(); 

Заранее спасибо за любые входные данные.

...