首页 > 解决方案 > 如何在点网的 websocket 服务器中处理 https 请求?

问题描述

我创建了一个 .NET Core 控制台应用程序。

当来自 wss 的客户端请求时,代码不起作用,我的客户端 url 托管在 https url 上并且具有有效的证书

这是服务器代码:

    static void Main(string[] args)
    {
        serverSocket.Bind(new IPEndPoint(IPAddress.Any, 8122));
        serverSocket.Listen(128);
        serverSocket.BeginAccept(null, 0, OnAccept, null);
        Console.Read();
    }

这是OnAccept方法:

    private static void OnAccept(IAsyncResult result)
    {
        byte[] buffer = new byte[1024];
        Socket client = null;

        string headerResponse = "";

        if (serverSocket != null && serverSocket.IsBound)
        {
                client = serverSocket.EndAccept(result);
                var i = client.Receive(buffer);
                string browserSent = GetDecodedData(buffer, i);
                Console.WriteLine("BrowserSent: " + browserSent);
                headerResponse = (System.Text.Encoding.UTF8.GetString(buffer)).Substring(0, i);
                // write received data to the console
        }
    }

这是javascript:

<script type="text/javascript">
        //Test
        var socket = new WebSocket('wss://<%=serverURL%>:8122');
        var myVar;
        socket.onopen = function (event) {
            var obj = { action: "admin", clientID: document.getElementById('<%=hid_clientid.ClientID %>').value, userID: document.getElementById('<%=hid_userid.ClientID %>').value };
            socket.send(JSON.stringify(obj));
            //myVar = setInterval(function timeout() {
            //}, 3000);
        };
</script>

标签: c#.net-core

解决方案


推荐阅读