Closed gustavotoyota closed 3 years ago
Not trying to advertise here, but if the Grapevine team is interested in a webserver in C# that isn't using http.sys, I have a project that may help.
At this time, Grapevine.Server is a wrapper for HttpListner
. I don't anticipate that changing in the foreseeable future.
I'm open to suggestions.
Hi @scottoffen - one of the libraries I released for enabling creation of RESTful web platforms is called Watson (https://github.com/jchristn/Watson). It has the same limitation being based on HttpListener
. As a result I created a separate project (identical to Watson) but gutted the HttpListener
components and instead rolled my own HTTP implementation directly on TcpServer
; it's called HttpServerLite and it can be found here: https://github.com/jchristn/httpserverlite. I'd be happy to help in any way I can, because as you already know, having the limitations of http.sys
can be a P.I.T.A.
On another note, congrats on your success thus far with Grapevine!
Cheers, Joel
@jchristn I'm finishing up Grapevine 5 now (it's in beta). While the limitations of http.sys
have not been a barrier for me, Grapevine 5 makes it possible to create just such an implementation, while leaving the existing HttpListener
-based implementation intact. If this is something people would find useful, I'm open to making it happen.
@gustavotoyota I'm not sure of the value of doing this in Grapevine 4. Grapevine 5 targets netstandard2.0
, netstandard2.1
, and net5.0
. Is there a reason you would need it to target a lower framework version?
Hi @scottoffen I've only encountered those limitations with users wanting to use my library WatsonWebsocket on Windows 7 (which doesn't support websockets). I had intended to port WatsonWebsocket over to HttpServerLite, which doesn't use http.sys, but to your point, it doesn't use the existing HttpListener implementation (though it certainly could).
I had also heard that HttpListener was going to be deprecated (thankfully that did not happen in .NET 5) which would of course accelerate the need for a non-http.sys implementation (see https://github.com/dotnet/platform-compat/issues/88)
I'm happy to collaborate in whatever way would be most beneficial if you're open to it! Feel free to email me at joel dot christner at gmail. Cheers, Joel
Cool. I'll close this issue for now, and defer this for Grapevine 5.
Since I don't have admin rights, I can't use a library that depends on http.sys or HttpListener.