Websocket Windows Server 2008R2上使用服务器发送事件的SignalR客户端

Websocket Windows Server 2008R2上使用服务器发送事件的SignalR客户端,websocket,signalr,Websocket,Signalr,服务器:支持WebSocket的Windows Server 2012 客户端计算机1:Windows 8.1 客户端计算机2:Windows Server 2008R2 我使用SigalR客户机构建了一个C#应用程序,我可以在两台客户机上进行delpoy。但是,我遇到的问题是,客户机1使用WebSocket进行连接,客户机2使用服务器端事件进行连接 这怎么可能呢?显然,服务器支持WebSocket,因为客户机1可以使用WebSocket进行连接。我不明白客户机2将如何使用SSE 使用hub.T

服务器:支持WebSocket的Windows Server 2012

客户端计算机1:Windows 8.1

客户端计算机2:Windows Server 2008R2

我使用SigalR客户机构建了一个C#应用程序,我可以在两台客户机上进行delpoy。但是,我遇到的问题是,
客户机1
使用WebSocket进行连接,
客户机2
使用服务器端事件进行连接

这怎么可能呢?显然,服务器支持WebSocket,因为客户机1可以使用WebSocket进行连接。我不明白
客户机2
将如何使用SSE

使用
hub.TraceLevel=TraceLevels.All在我的客户机上,我看到:

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&transport=webSockets&connectionData=[{"Name":"ClientDaemonHub"}]&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.<PerformConnect>d__1.MoveNext()
20:57:02.1273906 - 7ff6f37a-2485-4f08-9c20-872f63964bee - SSE: GET https://internal.soroco.com/signalr/connect?clientProtocol=1.4&transport=serverSentEvents&connectionData=[{"Name":"ClientDaemonHub"}]&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"})
20:57:01.5805156-空-更改状态(断开、连接)
20:57:02.1117656-7ff6f37a-2485-4f08-9c20-872f63964bee-WS连接到:wss://internal.soroco.com/signalr/connect?clientProtocol=1.4&transport=webSockets&connectionData=[{“名称”:“ClientDaemonHub”}]&connectionToken=MVBKW1CZN7OZSE1JCFFJC2ELXYXJZITZWISKN6ZZYV%2BxRJOFKCLRJDSQTPI2WY%2F7XsUyxbCEXPMesFjvE7zh0FrcGwEsh6WTpHlkqB0rXyARnC42Op8ZO3w%2FKCB
20:57:02.1273906-7ff6f37a-2485-4f08-9c20-872f63964bee-自动:无法使用传输WebSocket连接到。System.PlatformNotSupportedException:此平台不支持WebSocket协议。
在System.Net.WebSocket.ClientWebSocket..ctor()上
在Microsoft.AspNet.signal.Client.Transports.WebSocketTransport.d_u1.MoveNext()上
20:57:02.1273906-7ff6f37a-2485-4f08-9c20-872f63964bee-SSE:GEThttps://internal.soroco.com/signalr/connect?clientProtocol=1.4&transport=serverSentEvents&connectionData=[{“名称”:“ClientDaemonHub”}]&connectionToken=MVBKW1CZN7OZSE1JCFFJC2ELXYXJZITZWISKN6ZZYV%2BxRJOFKCLRJDSQTPI2WY%2F7XsUyxbCEXPMesFjvE7zh0FrcGwEsh6WTpHlkqB0rXyARnC42Op8ZO3w%2FKCB
20:57:02.1430156-7ff6f37a-2485-4f08-9c20-872f63964bee-SSE:OnMessage(数据:已初始化)
20:57:02.1430156-7ff6f37a-2485-4f08-9c20-872f63964bee-SSE:OnMessage(数据:{“C”:“d-752B7883-B,0|I,0|J,1”,“S”:1,“M”:[]))
20:57:02.4086406-7ff6f37a-2485-4f08-9c20-872f63964bee-更改状态(连接,已连接)
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(数据:{})
20:57:05.7523906-7ff6f37a-2485-4f08-9c20-872f63964bee-OnMessage({“I”:“2})
20:57:07.7367656-7ff6f37a-2485-4f08-9c20-872f63964bee-OnMessage({“I”:“3})
看起来相关的错误是:

自动:无法使用传输WebSocket连接到。System.PlatformNotSupportedException:此平台不支持WebSocket协议


NET Framework 4.5在Win7和Win2008 R2上运行,这就是Signal客户端用于websocket传输的内容。由于使用websocket失败,客户端将返回ServerSentEvents。

是否正在构建windows应用商店应用程序?如果您不使用PCL(可移植类库),websocket应该可以工作。打开日志记录,您应该可以看到发生了什么。您还可以使用以下技巧确保服务器确实支持websockets-在浏览器中请求以下页面(显然用您的主机替换localhost:9999),并检查响应(将是JSon)是否包含
“TryWebSockets”:true
。服务器肯定启用了websockets,当我在Windows8.1机器上运行我的C#应用程序时,它通过WebSocket连接。但是,当我在WindowsServer2008R2上运行相同的应用程序时,它使用服务器发送的事件进行连接。我需要阅读PCL,我将尝试启用日志记录。谢谢@Pawel我在我的客户端上添加了跟踪输出。您提供的日志是在连接启动后提供的。传输选择在此之前发生。我不记得在这方面,客户端日志有多广泛,但在最坏的情况下,您还应该能够使用fiddler跟踪正在进行的工作。我写了一篇关于signar协议的文章,你看到的问题发生在连接启动时(请参阅文章中的启动顺序),所以你需要看看那里的某个地方。