Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0.9 does not run on windows 7 #1

Open
techcap opened this issue Nov 21, 2017 · 7 comments
Open

v1.0.9 does not run on windows 7 #1

techcap opened this issue Nov 21, 2017 · 7 comments

Comments

@techcap
Copy link

techcap commented Nov 21, 2017

When called ConnectAsync, it raises ArgumentNullException.
It is because ClientWebSocket.Options.Cookies is null.
On v1.0.4, there was no problem on ConnectAsync.

@leszekm1
Copy link

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
Copy link

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
Copy link

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
Copy link
Author

techcap commented 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
Copy link

PR created.

@techcap
Copy link
Author

techcap commented Nov 28, 2017

v1.0.12, released on nuget, still doesn't support win7.

@leszekm1
Copy link

The PR hasn't been accepted yet, so there is no new nuget version that has win7 support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants