c# - 如何在点网的 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>
解决方案
推荐阅读
- java - log4j 从哪里选择保存日志的驱动器
- c# - 两个 azure web api 如何在 azure 中通信
- java - 为什么局部变量存储在java的堆栈内存中
- c# - 如何从非控制台 ASP.Net 应用程序中捕获标准输出
- python - 如何在 python 中更改垂直对齐列?
- vert.x - Vert.x 响应路径处理程序示例
- c# - Response.Redirect 并导致 System.Threading.ThreadAbortException?
- visual-studio - 错误:“Visual Studio Community 2017 产品已安装在此文件夹中。需要选择其他位置。”
- regex - How do I write a Regular Expression to match any three digits except 2 numbers?
- reactjs - 我应该将组件中定义的所有函数包装在 useCallback 中吗?