本人使用fleck框架用来socket通讯,服务器站点可以通过https访问。
然后前端socket通过ws访问是没问题的,但是使用wss访问就不行了,求解。
后台代码如下:
WebSocketServer server;
//【含证书】
if (socketType == "wss")
{
server = new WebSocketServer("wss://0.0.0.0:3301");
string certificatePath = ConfigHelper.GetValue("certificatePath");
string password = ConfigHelper.GetValue("password").Trim();
//添加证书(certificatePath:证书路径,password:访问证书数据所需的密码)
server.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(certificatePath, password);
LogHelper.WriteLog_LocalTxt(server.Certificate.FriendlyName);
//server.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(certificatePath, password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.Exportable | System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.MachineKeySet | System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.PersistKeySet);
}
else
{
//【无证书】
//webscoket服务端实例
//server = new WebSocketServer("ws://0.0.0.0:3302");
server = new WebSocketServer("ws://0.0.0.0:3302");
}
//出错后进行重启
server.RestartAfterListenError = true;
客户端是IOS吗,IOS需求必须是Tls1.2
server = new WebSocketServer("wss://0.0.0.0:3301") {
RestartAfterListenError = true,
EnabledSslProtocols = SslProtocols.Tls12, //IOS要求必须Tls1.2
Certificate = new X509Certificate2(sslName, sslPassword, X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet),
};
大佬,您好。不只是ios 是所有移动端(前端,小程序,安卓)都无法访问 !!!
@CoolDog;: 你试试我的代码
@WmW: 不好意思..不行 仍然访问超时.
@CoolDog;: 那就不清楚了
感谢大家的帮助,问题找到了。是因为服务器配置的问题,遇见这种问题。大家以后多试试,我就是找同事的服务器试了一下发现程序没问题。那就是服务器配置问题了。
你这个是服务器配置的问题吗。我也遇到了,结果发现是端口问题,只要把端口去掉就可以正常链接了,网上找到的信息是wss协议不支持带端口的url
感谢大家的帮助,问题找到了。是因为服务器配置的问题,遇见这种问题。大家以后多试试,我就是找同事的服务器试了一下发现程序没问题。那就是服务器配置问题了。
– CoolDog; 2年前