我有一个 JavaScript 客户端。
我有一个网络套接字,它正在尝试与我的服务器通信。
我的网络应用程序在 https 下运行,我使用 Open SSL 来获取我的证书。
在我的 C# 中,我使用 Socket 对象来接收客户端请求。
我的客户端可以连接,但当我尝试读取/解析标头时,它已加密。(我不知道如何解密)。
如果我的网络套接字不使用 SSL,问题就会消失。但是,即使我将客户端中的 uri 设置为:
var url = "ws://192.168.0.9:8090/Relayer";
改为:
var url = "wss://192.168.0.9:8090/Relayer";
这是我的服务器代码:
//server starting to listen
serverSocket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP );
serverSocket.Bind( new IPEndPoint( IPAddress.Any, 8090 ) );
serverSocket.Listen( 128 );
serverSocket.BeginAccept( null, 0, OnAccept, null );
//server responding to Client Request:
private static Socket serverSocket;
private static void OnAccept(IAsyncResult result)
{
byte[] buffer = new byte[1024];
try
{
Socket client = null;
string headerResponse = "";
if (serverSocket != null && serverSocket.IsBound)
{
client = serverSocket.EndAccept(result);
var i = client.Receive(buffer);
//my many attempts to read the data....
string unicode = (Encoding.UTF8.GetString(buffer)).Substring(0, i);
string str = Uri.UnescapeDataString(unicode);
var outputs = System.Net.WebUtility.HtmlDecode(unicode);
}
if (client != null)
{
/* Handshaking and managing ClientSocket */
}
}
catch (SocketException ex)
{
Logger.LogVerbose(LoggerNames.Error, ex.ToString());
}
finally
{
if (serverSocket != null && serverSocket.IsBound)
{
serverSocket.BeginAccept(null, 0, OnAccept, null);
}
}
}
那么,我可以强制我的 Web 套接字不使用 SSL 吗?
谢谢
好吧,阅读完内容后,我明白混合 http 和 https、ws 和 wss 不是一个好主意。
任何使用 SSL/wss 使其工作的想法都会很好:)
烙印99
相关分类