title: SignalR client on Windows Server 2008R2 using Server Sent Events
body: <p><strong>Server:</strong>  Windows Server 2012 with WebSocket support</p>
  
  <p><strong>Client Machine 1:</strong> Windows 8.1</p>
  
  <p><strong>Client Machine 2:</strong> Windows Server 2008R2</p>
  
  <p>I built a C# application using the SigalR client that I can delpoy on my two client machines.  However, the issue that I am running in to is that <code>Client Machine 1</code> connects using WebSockets, and <code>Client Machine 2</code> connects using Server Side Events.</p>
  
  <p>How can this be the case?  Clearly the server supports WebSockets since <code>Client Machine 1</code> can connect using them.  I don't understand how <code>Client Machine 2</code> would use SSE.</p>
  
  <p>Using <code>hub.TraceLevel = TraceLevels.All;</code> on my client, I see:</p>
  
  <pre><code>20:57:01.5805156 - null - ChangeState(Disconnected, Connecting)
  20:57:02.1117656 - 7ff6f37a-2485-4f08-9c20-872f63964bee - WS Connecting to: wss://internal.soroco.com/signalr/connect?clientProtocol=1.4&amp;transport=webSockets&amp;connectionData=[{"Name":"ClientDaemonHub"}]&amp;connectionToken=Mvbkw1czN7OZSE1jcfFjC2elxYxJhZiTZwisKKn6ZzYv%2BXRjOgfkclRJdSQtPi2wy%2F7XsUyxbCEXPMesFjvE7zh0FrcGwEsh6WTpHlkqB0rXyARnC42Op8ZO3w%2FhuKcB
  20:57:02.1273906 - 7ff6f37a-2485-4f08-9c20-872f63964bee - Auto: Failed to connect to using transport webSockets. System.PlatformNotSupportedException: The WebSocket protocol is not supported on this platform.
     at System.Net.WebSockets.ClientWebSocket..ctor()
     at Microsoft.AspNet.SignalR.Client.Transports.WebSocketTransport.&lt;PerformConnect&gt;d__1.MoveNext()
  20:57:02.1273906 - 7ff6f37a-2485-4f08-9c20-872f63964bee - SSE: GET https://internal.soroco.com/signalr/connect?clientProtocol=1.4&amp;transport=serverSentEvents&amp;connectionData=[{"Name":"ClientDaemonHub"}]&amp;connectionToken=Mvbkw1czN7OZSE1jcfFjC2elxYxJhZiTZwisKKn6ZzYv%2BXRjOgfkclRJdSQtPi2wy%2F7XsUyxbCEXPMesFjvE7zh0FrcGwEsh6WTpHlkqB0rXyARnC42Op8ZO3w%2FhuKcB
  20:57:02.1430156 - 7ff6f37a-2485-4f08-9c20-872f63964bee - SSE: OnMessage(Data: initialized)
  20:57:02.1430156 - 7ff6f37a-2485-4f08-9c20-872f63964bee - SSE: OnMessage(Data: {"C":"d-752B7883-B,0|I,0|J,1","S":1,"M":[]})
  20:57:02.4086406 - 7ff6f37a-2485-4f08-9c20-872f63964bee - ChangeState(Connecting, Connected)
  20:57:03.5180156 - 7ff6f37a-2485-4f08-9c20-872f63964bee - OnMessage({"R":"497ca302-7375-4250-aa85-fb4ae2556877","I":"0"})
  20:57:03.8461406 - 7ff6f37a-2485-4f08-9c20-872f63964bee - OnMessage({"I":"1"})
  20:57:04.7523906 - 7ff6f37a-2485-4f08-9c20-872f63964bee - SSE: OnMessage(Data: {})
  20:57:05.7523906 - 7ff6f37a-2485-4f08-9c20-872f63964bee - OnMessage({"I":"2"})
  20:57:07.7367656 - 7ff6f37a-2485-4f08-9c20-872f63964bee - OnMessage({"I":"3"})
  </code></pre>
  
  <p>Looks like the relevant error is:</p>
  
  <blockquote>
    <p>Auto: Failed to connect to using transport webSockets. System.PlatformNotSupportedException: The WebSocket protocol is not supported on this platform.</p>
  </blockquote>