You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When called ConnectAsync, it raises ArgumentNullException.
It is because ClientWebSocket.Options.Cookies is null.
On v1.0.4, there was no problem on ConnectAsync.
Even if you fix the Cookies not to be null it still does not work on Win7 since 1.0.9 was switched from using TCP socket implementation to using HttpClientHander which exposes a read/write stream on Windows 8+ and a read-only stream on Win7 and constructing a web socket on top that stream fails in Win7. You need to revert "WebSocketHandle.Managed.cs" to the June 30th implementation and then it will work on Win7 since it sits on top of TCP stack and not HTTP stack.
I've looked into this a bit more. The previous version of "WebSockethandle.Managed.cs" had its own implementation of a bare bone HTTP stack (just enough to establish a web socket) on top of TCP. The current version was moved to be on top of HttpClientHander. From the README file of the corefx project:
"The shipping version of HttpClientHandler is a wrapper for WinHTTP on Windows and libcurl on Unix."
Well, the WinHTTP native stack in Win7 is not duplex and will never be able to support web sockets so the move to use HttpClientHandler permanently broke Win7 compatibility.
For now I'm using 1.0.9 code base with the last available version of the "WebSocketHandle.Managed.cs" file that had its own HTTP stack. Since some of our clients are large corporations with domain join Win7 machines. Those corporations have firewalls with build-in web proxies that only allow authenticated domain users to go through and our socket.io based services live in the cloud. I'm currently adding proxy support and automatic proxy authentication based on the logged on user's credentials to that version of the file. If there is an interest I' will create a pull request to bring back Win7 compatibility and have proxy + automatic proxy auth support.
Activity
leszekm1 commentedon Nov 21, 2017
Even if you fix the Cookies not to be null it still does not work on Win7 since 1.0.9 was switched from using TCP socket implementation to using HttpClientHander which exposes a read/write stream on Windows 8+ and a read-only stream on Win7 and constructing a web socket on top that stream fails in Win7. You need to revert "WebSocketHandle.Managed.cs" to the June 30th implementation and then it will work on Win7 since it sits on top of TCP stack and not HTTP stack.
leszekm1 commentedon Nov 23, 2017
I've looked into this a bit more. The previous version of "WebSockethandle.Managed.cs" had its own implementation of a bare bone HTTP stack (just enough to establish a web socket) on top of TCP. The current version was moved to be on top of HttpClientHander. From the README file of the corefx project:
"The shipping version of HttpClientHandler is a wrapper for WinHTTP on Windows and libcurl on Unix."
Well, the WinHTTP native stack in Win7 is not duplex and will never be able to support web sockets so the move to use HttpClientHandler permanently broke Win7 compatibility.
leszekm1 commentedon Nov 23, 2017
For now I'm using 1.0.9 code base with the last available version of the "WebSocketHandle.Managed.cs" file that had its own HTTP stack. Since some of our clients are large corporations with domain join Win7 machines. Those corporations have firewalls with build-in web proxies that only allow authenticated domain users to go through and our socket.io based services live in the cloud. I'm currently adding proxy support and automatic proxy authentication based on the logged on user's credentials to that version of the file. If there is an interest I' will create a pull request to bring back Win7 compatibility and have proxy + automatic proxy auth support.
techcap commentedon Nov 24, 2017
Because of the problem of v1.0.9, I downgraded to v1.0.7 and now it's on test.
If you create PR for fixing the problem, it will be really great!!
leszekm1 commentedon Nov 28, 2017
PR created.
techcap commentedon Nov 28, 2017
v1.0.12, released on nuget, still doesn't support win7.
leszekm1 commentedon Nov 28, 2017
The PR hasn't been accepted yet, so there is no new nuget version that has win7 support.