Я создал сервер WebSocket с помощью ServiceHost:конфигурации WCF ServiceHost для использования с WebSocket Secure через TLS
using (ServiceHost host = new ServiceHost(typeof(WebSocketsServer), baseAddress))
{
CustomBinding binding = new CustomBinding();
binding.Elements.Add(new ByteStreamMessageEncodingBindingElement());
HttpTransportBindingElement transport = new HttpTransportBindingElement();
transport.WebSocketSettings.TransportUsage = WebSocketTransportUsage.Always;
transport.WebSocketSettings.CreateNotificationOnConnection = true;
binding.Elements.Add(transport);
host.AddServiceEndpoint(typeof(IWebSocketsServer), binding, "");
host.Open();
}
Он прекрасно работает с моим приложением JavaScript. В настоящее время я пытаюсь добавить поддержку для WebSocket Secure. Я изменил HttpTransportBindingElement к Http сек TransportBindingElement, тем BaseUrl к https: // и соединение URL-адрес в приложении JavaScript для WSS: //
using (ServiceHost host = new ServiceHost(typeof(WebSocketsServer), baseAddress))
{
CustomBinding binding = new CustomBinding();
binding.Elements.Add(new ByteStreamMessageEncodingBindingElement());
HttpsTransportBindingElement transport = new HttpsTransportBindingElement();
transport.WebSocketSettings.TransportUsage = WebSocketTransportUsage.Always;
transport.WebSocketSettings.CreateNotificationOnConnection = true;
binding.Elements.Add(transport);
host.AddServiceEndpoint(typeof(IWebSocketsServer), binding, "");
host.Open();
}
Я ожидал, что он будет работать, приложение запускается без ошибок, но после подключения в JavaScript я получаю эту ошибку.
WebSocket connection to 'wss://localhost:5555/wsData' failed: Error in connection establishment: net::ERR_CONNECTION_RESET
Существуют ли какие-либо другие настройки ServiceHost необходимо использовать WebSocket безопасно? Безопасна ли защита WebSocket в Microsoft ServiceModel?